Category类别:
1、定义:
类的方法的拓展;
2、使用:
在定义好了一个类,当我们不想改,或者是不能修改时(系统提供的类),我们可以对其添加类别,而非子类;
3、用处:
(1)对现有的类进行扩展;
(2)作为子类的替代手段;
(3)对类中的方法归类;
4、注意:
1、在类目中定义的方法,会成为原始类的一部分,与其他方法的调用没有区别;
2、通过给父类定义类目方法,其子类也会继承这些方法。
3、由于类别具有更高的优先级,所以在覆盖原来的方法时一定要注意super的使用;
5、局限性:
类别无法添加属性,只能通过子类来添加;
@interface NSString (NumberConvenience)
-(NSNumber *)lengthAsNumber;
@end
@implementation NSString (NumberConvenience)
-(NSNumber*) lengthAsNumber
{
unsigned intlength = [self length];
return ([NSNumber numberWithUnsignedInt: length]);
}
@end