UIColorにいくつかのクラスメソッドを追加したいと思います。私はそれらを実装しましたし、すべてが正常にコンパイルが、実行時に、私は次のエラーを取得する:カテゴリを使用してクラスメソッドを追加できますか?
@interface UIColor (Hex)
+ (UIColor*) colorWithHex: (NSUInteger) hex;
@end
ここでの実装があります:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[UIColor colorWithHex:]: unrecognized selector sent to class 0x8d1d68'
ここでは、ヘッダファイルです
#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
実装を追加しました。 – Inferis