Я хочу добавить некоторые методы класса в 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
I «Мы нашли что-то о добавлении -all_load к флагам компоновщика, но при этом получается тот же результат. Это на iPhone, если не ясно.
Вы импортировали файл заголовка? Что он говорит в вашем файле реализации? – BoltClock
Добавлена реализация. – Inferis