参考:http://blog.csdn.net/lonelyroamer/article/details/7704896
局限性
1.不可以添加属性。
2.添加的方法名与原类的方法重名,则启用当前类别的方法。类别具有更高优先级。
作用
1.将类的实现分散到多个不同文件或多个不同框架中。
2.创建对私有方法的前向应用。
3.向对象添加非正式协议。
作用一:在我们的整个框架中有很多分类,都可以解释以上作用,此处不做详细说明
作用二,使用类别创建前向引用
Cocoa没有任何真正的私有方法。只要知道对象支持的某个方法名称,及时该对象所有类中的接口没有该方法的声明,你也可以调用该方法。不过这样使用编译器会报警告,使用类别就可以消除警告。
如下:
例子,有这么一个类MethodsTest
接口声明了两个方法 showInfo1()和showInfo2()
@interface methodsTest:NSObject
- (void)showInfo1;
- (void)showInfo2;
@end
@implementation methodsTest
-(void)showInfo1{
}
-(void)showInfo2{
}
-(void)showInfo3{
}
@end
showInfo3方法实现了,但是没有声明,使用的时候会发出警告。
在使用的地方加上分类和相应方法的声明,就不会发出警告。
@interface methodsTest()
- (void)showInfo3;
@end
作用三:向对象添加非正式协议
凡是NSObject或者其子类的类别,都是非正式协议