【发布时间】:2011-01-13 21:29:42
【问题描述】:
我想给 UIColor 添加一些类方法。我已经实现了它们并且一切都编译得很好,但是在运行时我得到了以下错误:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[UIColor colorWithHex:]: unrecognized selector sent to class 0x8d1d68”
这是头文件:
@interface UIColor (Hex)
+ (UIColor*) colorWithHex: (NSUInteger) hex;
@end
下面是实现:
#import "UIColor+Hex.h"
@implementation UIColor (Hex)
+ (UIColor*) colorWithHex: (NSUInteger) hex {
CGFloat red, green, blue, alpha;
red = ((CGFloat)((hex >> 16) & 0xFF)) / ((CGFloat)0xFF);
green = ((CGFloat)((hex >> 8) & 0xFF)) / ((CGFloat)0xFF);
blue = ((CGFloat)((hex >> 0) & 0xFF)) / ((CGFloat)0xFF);
alpha = hex > 0xFFFFFF ? ((CGFloat)((hex >> 24) & 0xFF)) / ((CGFloat)0xFF) : 1;
return [UIColor colorWithRed: red green:green blue:blue alpha:alpha];
}
@end
我发现了一些关于将 -all_load 添加到链接器标志的方法,但这样做会产生相同的结果。这是在 iPhone 上,如果不清楚的话。
【问题讨论】:
-
你导入头文件了吗?它在你的实现文件中说了什么?
标签: iphone objective-c cocoa categories