创建对私有方法的向前引用。
一般情况下,没有在.h接口文件中声明,只有在.m文件中出现的方法,外界是不能调用的。
但是通过定义类别后,把这个.m文件中的方法在类别的.h文件中声明出来,外界就可以调用了。
这种方式就是对私有对象的向前引用。
向对象添加非正式协议。
- 正式协议是通过@protocol关键字声明的一系列方法,然后由准守协议的类去实现这些方法。
- 非正式协议是通过分类,将正式协议里声明的方法声明在现有类的类别中。
- 基于非正式协议,可以把委托方法声明在NSObject类别中,这样就可以实现:任何类,只要它实现了委托方法,那么它的实例就可以是委托对象。
类扩展(特殊的没有名字的类别)
类扩展语法:
@interface 已有类名称()
{ 实例变量 }
属性
方法
@end
和类别的声明差别就是没有类别的名字。一般在类的.m文件中实现以上代码。作为类中独立使用的私有方法。扩展中的声明,需要在原有.m文件中的@implementation中实现。
注:类扩展是在编译时进行处理,而类别是运行时,动态的添加方法。