秋来田野上, 且宿陋茅庵。
夜半湿衣袖, 滴滴冷露沾。
iOS开发 - Category和Extension的区别
区别一
- Category
- 专门用来给类添加新的方法
- 不能给类添加成员属性(其实是可以通过runtime给分类添加属性)
- 分类中用
@property
定义变量,只会生成变量的getter、setter方法的声明,不能生成方法实现和带下划线的成员变量。
iOS开发 - 深入理解Objective-C:Category
摘要
无论一个类设计得多么完美,在未来的需求演进中,都有可能会碰到一些无法预测的情况。那怎么扩展已有的类呢?一般而言,继承和组合是不错的选择。但是在Objective-C 2.0中,又提供了Category这个语言特性,可以动态地为已有类添加新方法。如今Category已经遍布于Objective-C代码的每个角落,从Apple官方的的framework到各个开源框架,从功能繁复的大型App到简单的应用,Category无处不在。本文对Category做了比较前面的整理,希望对读者有所裨益。