2009-09-19 2 views
0

У меня ошибка компилятора, и я просто не могу понять, что не так. Я новичок в этом, так что я пытаюсь расшифровать эту ошибку.Ошибка с UIImageView

В моей .h у меня есть ...

@interface LongViewController : UIViewController { 

    IBOutlet UIImageView *loadImageInto; 
    IBOutlet UIImageView *loadedInto; 
} 

-(void)fadeIt:(UIImageView*)imgNamed; 

И в моей .m ...

-(void)fadeIt:(UIImageView*)imgNamed 
{ 
    if(longSize1.alpha == 0.0){ 
     loadImageInto = longSize1; 
     loadedInto = longSize2; 
    } 
    if(longSize2.alpha == 0.0){ 
     loadImageInto = longSize2; 
     loadedInto = longSize1; 
    } 

    loadImageInto.image = [UIImage imageNamed:imgNamed]; 
} 

Предупреждение я получаю на последней строке и:

warning passing argument 1 of 'imageNamed' from distinct objective-c type 

Я думаю, что это говорит о том, что тип неправильный, но я не могу разобраться в нем. Вероятно, это говорит о том, что код работает нормально, и изображения загружаются, как ожидалось.

Любая помощь была бы высоко оценена!

+1

Почему вы передаете UIImageView в этом методе? - (void) fadeIt: (UIImageView *) imgNamed? – Sharme

ответ

1

UIImage imageNamed: принимает NSString *, который является именем загружаемого изображения. Похоже, что ваша переменная imgNamed не является правильным типом (а не NSString *).

0

вы можете попробовать

loadImageInto = imgNamed ; 
0

Вы передаете UIImageView методу в качестве параметра, а затем использовать это значение в методе [UIImage imageNamed:]. Метод imageNamed: принимает NSString как параметр, а не UIImageView. Поэтому либо вам нужно передать имя изображения как NSString, либо использовать значение UIImageView как UIImageView. Не видя остальной части кода и как создавался этот UIImageView, трудно судить о лучшем способе, но из его взглядов вы можете просто написать loadImageInto = imgNamed. Там вы один UIImageView для другого. Однако я сомневаюсь, что это действительно сработает. Поэтому я бы предложил либо передать значение NSString, либо отправить больше кода.