类的扩展
1.类目的基本概念和用法
类目(category)的基本概念
封装是面向对象的一个特征,OC也不例外,但是有的时候我们会碰到这样一种情况,比如我封装了一个类,不想再动
它,可是随着程序功能的增加,需要在那个类中增加一个小小的方法,这时我们就不必在那个类中做修改或者定义一个子类,只需要在用到那个方法时随手添加一个该类的类别(category)即可。
(1)在类目定义的方法,会成为原始类的一部分,与其他方法的调用没有区别。
(2)通过给父类定义类目方法,其子类也会继承这些方法。如果子类添加类目方法,父类则不会拥有子类的类目方法。
A.类目方法的应用
a.对现有类进行扩展:比如,你可以扩展Cocoa touch框架中的类,你在类目中增加的方法会被子类所继承,而且在运行时跟其他的方法没有区别。
b.作为子类的替代手段:不需要定义和使用一个子类,你可以通过类目直接向已有的类中添加方法。
c.对类中的方法归类:利用category把一个庞大的类划分为小块来分别进行开发,从而更好地对类中的方法进行更新和维护。
B.类目方法的局限性
a.无法向类目中,添加新的实例变量,类目没有位置来容纳实例变量。如果想增加类的实例变量,只能通过定义子类的方式。
b.如若ÿ
1.类目的基本概念和用法
类目(category)的基本概念
封装是面向对象的一个特征,OC也不例外,但是有的时候我们会碰到这样一种情况,比如我封装了一个类,不想再动
它,可是随着程序功能的增加,需要在那个类中增加一个小小的方法,这时我们就不必在那个类中做修改或者定义一个子类,只需要在用到那个方法时随手添加一个该类的类别(category)即可。
(1)在类目定义的方法,会成为原始类的一部分,与其他方法的调用没有区别。
(2)通过给父类定义类目方法,其子类也会继承这些方法。如果子类添加类目方法,父类则不会拥有子类的类目方法。
A.类目方法的应用
a.对现有类进行扩展:比如,你可以扩展Cocoa touch框架中的类,你在类目中增加的方法会被子类所继承,而且在运行时跟其他的方法没有区别。
b.作为子类的替代手段:不需要定义和使用一个子类,你可以通过类目直接向已有的类中添加方法。
c.对类中的方法归类:利用category把一个庞大的类划分为小块来分别进行开发,从而更好地对类中的方法进行更新和维护。
B.类目方法的局限性
a.无法向类目中,添加新的实例变量,类目没有位置来容纳实例变量。如果想增加类的实例变量,只能通过定义子类的方式。
b.如若ÿ