Category 也叫 分类/类别/类目
作用:
1 不改变原有源码的情况下对类功能进行扩展
2 对于一些大类,进行功能划分, 有利于模块化编程
使用格式:
1 声明: @ interface 类 (分类)
@end
2 实现: @implementation 类(分类)
@end
注意:
1 分类仅仅是对类功能进行扩展,只能定义实现方法,
不能添加实例变量(因为实例变量所在的内存区域已初始化为不可更改,无法在动态运行时修改之,可以用动态运行添加动态变量),但是可以调用
类实例变量和类方法
2 分类中方方法可以选择实现,实现后,如果有和类同名方法, 分类方法优先级更高
3 分类中方法可以被继承
Extension 就是扩展也叫匿分类
相比分类 扩展主要用于 类实现之前, 对类添加私有实例变量和私有方法
格式
@interface 类 ()
@end
@implementation 类
@end