Category主要用于在不创建继承类的情况下实现对已有类的扩展,向已有类中添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择。例子:@interface UIColor (HexColor)
+ (UIColor *)HexColor:(NSString *) hexColor;
@end
#import "UIColor+HexColor.h"
@implementation UIColor (HexColor)
+ (UIColor *)HexColor:(NSString *) hexColor {
unsigned int redInt_, greenInt_, blueInt_;
NSRange rangeNSRange_;
rangeNSRange_.length = 2;
rangeNSRange_.location = 0;
[[NSScanner scannerWithString:[hexColor substringWithRange:rangeNSRange_]]
scanHexInt:&redInt_];
rangeNSRange_.location = 2;
[[NSScanner scannerWithString:[hexColor substringWithRange:rangeNSRange_]]
scanHexInt:&greenInt_];
rangeNSRange_.location = 4;
[[NSScanner scannerWithString:[hexColor substringWithRange:rangeNSRange_]]
scanHexInt:&blueInt_];
return [UIColor colorWithRed:(float)(redInt_/255.0f)
green:(float)(greenInt_/255.0f)
blue:(float)(blueInt_/255.0f)
alpha:1.0f];
}
@end
调用
self.view.backgroundColor = [UIColor HexColor:@"ec2003"];