2010-10-01 7 views
0

Я добавил категорию UIView для хранения некоторых вспомогательных методов перехода. Все методы работают; Однако, я получаю компилятор предупреждения:Почему моя категория UIView вызывает предупреждения?

предупреждение: 'UIButton' может не реагировать на '-fadeOutWithDuration:'

Мой файл "UIView + Trans.h" выглядит следующим образом:

@interface UIImage (trans) 
- (void) fadeOutWithDuration:(CGFloat)duration; 
@end 

Мой файл "UIView + Trans.m" выглядит следующим образом:

#import <QuartzCore/QuartzCore.h> 
#import "UIView+Trans.h" 

@implementation UIView (trans) 
- (void) fadeOutWithDuration:(CGFloat) duration { 
    //... 
} 
@end 

И я звоню метод, как го is: (и имеет #import «UIView + Trans.h» в верхней части каждого файла, который использует метод категории.) Я также попробовал лить UIButton * в UIView *.

[self.myButton fadeOutWithDuration:kFadeOutDuration]; 

Я использовал пример «NSString + Reverse» из этой статьи Categories Example успешно в том же проекте и без назойливых предупреждений.

+0

Выглядит правильно для меня, вам может потребоваться удалить импорт и попытаться скопировать еще раз, проверьте имя файла: – vodkhang

ответ

2

В вашем файле заголовка вы указали категорию на UIImage не UIView.

+0

Wow! Я не могу поверить, сколько раз я прошел через эти линии и пропустил это! Также интересно, что он работал ... Большое спасибо! – Dave

+0

Прохладный глаз! Я не видел этого – vodkhang

+0

Причина, по которой она работает, заключается в том, что вы правильно определили реализацию, и поэтому категория существует во время выполнения, и метод активируется правильно. В этом случае единственной причиной для заголовка вашей категории является предотвращение предупреждений компилятора ;-) – ikuramedia

Смежные вопросы