category的应用
2016-08-01 17:51
211 查看
创建对私有方法的向前引用。
一般情况下,没有在.h接口文件中声明,只有在.m文件中出现的方法,外界是不能调用的。但是通过定义类别后,把这个.m文件中的方法在类别的.h文件中声明出来,外界就可以调用了。
这种方式就是对私有对象的向前引用。
向对象添加非正式协议。
正式协议是通过@protocol关键字声明的一系列方法,然后由准守协议的类去实现这些方法。非正式协议是通过分类,将正式协议里声明的方法声明在现有类的类别中。
基于非正式协议,可以把委托方法声明在NSObject类别中,这样就可以实现:任何类,只要它实现了委托方法,那么它的实例就可以是委托对象。
类扩展(特殊的没有名字的类别)
类扩展语法:@interface 已有类名称() { 实例变量 } 属性 方法 @end
和类别的声明差别就是没有类别的名字。一般在类的.m文件中实现以上代码。作为类中独立使用的私有方法。扩展中的声明,需要在原有.m文件中的@implementation中实现。
注:类扩展是在编译时进行处理,而类别是运行时,动态的添加方法。
相关文章推荐
- 浅析Objective-C中分类Category的使用
- Exchange server 2010 Event ID 106错误解决方案
- iOS学习系列 - 扩展机制category与associative
- NSCFString !!!通常遇到这个东西造成崩溃都是由于NSString类型实用不当。应仔细检查
- SDWebImage的缓存机制
- 解决ios静态库中的类别(category)在工程中不能使用
- OC学习之--类的扩展
- iOS 关联Associative
- 01 类目Category、延展Extension、协议Protocol、计数器的使用NSTimer
- Category,protocol,Block总结对比
- 黑马程序员——OC基础:block和Protocol及Category
- Objective-C之Category
- 深入理解Objective-C:Category(上)
- 深入理解Objective-C:Category(下)
- Category和Extension
- 为category添加属性和成员变量
- WordPress-当文章属于两个或多个分类时,使其在不同的分类使用不同文章模板的方法
- Objective-C的协议、Blocks、Category
- 类别和类扩展的区别
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性