我想添加一些类方法到UIColor。我实现了他们和一切编译罚款,但在运行时我得到以下错误:我可以使用类别添加类方法吗?
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[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上,如果它不明确。
您是否导入了头文件?它在你的实现文件中说了什么? – BoltClock 2011-01-13 21:31:49
添加了实现。 – Inferis 2011-01-13 22:19:03