category的应用

来源:互联网 发布:金融投资数据公布平台 编辑:程序博客网 时间:2024/06/05 14:15

创建对私有方法的向前引用。


一般情况下,没有在.h接口文件中声明,只有在.m文件中出现的方法,外界是不能调用的。
但是通过定义类别后,把这个.m文件中的方法在类别的.h文件中声明出来,外界就可以调用了。
这种方式就是对私有对象的向前引用。

向对象添加非正式协议。


  • 正式协议是通过@protocol关键字声明的一系列方法,然后由准守协议的类去实现这些方法。
  • 非正式协议是通过分类,将正式协议里声明的方法声明在现有类的类别中。
  • 基于非正式协议,可以把委托方法声明在NSObject类别中,这样就可以实现:任何类,只要它实现了委托方法,那么它的实例就可以是委托对象。

类扩展(特殊的没有名字的类别)

类扩展语法:

@interface 已有类名称(){ 实例变量 }属性方法@end

和类别的声明差别就是没有类别的名字。一般在类的.m文件中实现以上代码。作为类中独立使用的私有方法。扩展中的声明,需要在原有.m文件中的@implementation中实现。

:类扩展是在编译时进行处理,而类别是运行时,动态的添加方法。

0 0