몇 가지 클래스 메서드를 UIColor에 추가하려고합니다. 내가 그들을 구현했습니다 모든 것이 잘 컴파일하지만 런타임에 나는 다음과 같은 오류 얻을 :클래스 메서드를 추가하기 위해 범주를 사용할 수 있습니까?
이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
I : 여기
@interface UIColor (Hex)
+ (UIColor*) colorWithHex: (NSUInteger) hex;
@end
를 구현이다 '링커 플래그에 -all_load를 추가하는 방법을 찾았지만 그렇게하면 같은 결과가 나타납니다. 그것이 명확하지 않다면 이것은 iPhone에 있습니다.
헤더 파일을 가져 왔습니까? 구현 파일에서 그 내용은 무엇입니까? – BoltClock
구현이 추가되었습니다. – Inferis