一、类别的作用
1:类别是类的扩展,只可以声明方法,不可以声明变量。并且,类别的方法优先级较高,可覆盖原类方法。
2:类别的方法中,不可以调用super方法。--类别的局限
3:category 方法不能覆盖于同一class 的其它 category中的方法。因为不法预知他们的加载优先顺序,就可能在编译时出错。
类别主要有三个作用:
(1)将类的实现分散到不同的文件或不同的框架中。
(2)创建对私有方法的向前引用。
(3)向对象添加非正式协议。
注:类别只可以扩充方法,不可以扩充成员变量。
二、与继承区别
继承可以增加、修改方法,并且可以增加属性。
使用类别:
1。对框架提供类的扩展(没有源码,不能修改)。
2。 不想生成一个新的子类的情况下,比如对NSArray 的扩展。
3。方便做项目管理,可以将一份源码在多个地方共享或者做方法版本管理、多人协作开发、用本地版本替换公共版本实现。
扩展:
1:某些情况下,我们需要声明一个@property,它对外是只读的(readonly),而对内是可读写的(readwrite),这时,可以通过Extensions实现