【问题标题】:Why is my UIView category causing warnings?为什么我的 UIView 类别会导致警告?
【发布时间】:2010-10-01 17:32:49
【问题描述】:

我向 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

我正在调用这样的方法:(并且在每个使用类别方法的文件的顶部都有 #import "UIView+Trans.h"。)我还尝试将 UIButton* 转换为 UIView *.

[self.myButton fadeOutWithDuration:kFadeOutDuration];

我已经在同一个项目中成功使用了这篇Categories Example 文章中的“NSString+Reverse”示例,并且没有出现讨厌的警告。

【问题讨论】:

  • 对我来说看起来正确,您可能需要删除导入并再次尝试复制,检查文件名内容:)

标签: iphone objective-c uiview categories objective-c-category


【解决方案1】:

在您的头文件中,您已在 UIImage 而不是 UIView 上声明了类别。

【讨论】:

  • 哇!我无法相信有多少次我已经越过这些线并错过了它!同样有趣的是它正在工作......非常感谢!
  • 它之所以起作用是因为您已经正确定义了实现,因此该类别在运行时存在并且该方法被正确激活。在这种情况下,您的类别标题的唯一原因是防止编译器警告;-)
猜你喜欢
  • 2011-07-31
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
相关资源
最近更新 更多