iOS中对类能起到扩展作用的方法主要有以下几种:
1. 继承某个类
2. 类目(category)
3. 类的延展(extension)
4. 协议(protocol)
我们在开发过程中比较常用的: 继承, 协议
继承:
当子类继承一个父类以后, 它可以拥有父类的所有成员变量, 属性和方法, 而且可以重写父类的方法,也可以拥有自己的方法, 这样,起到一个扩展父类的左右
类目(category):
类目是为了扩展原类中没有的方法, 命名方式以被扩展类的名字+自己命名
interface 被扩展类 (自己命名) .m中实现要扩展的方法的
特点: 类目中不能有成员变量, 而且一般不扩展原类中的属性, 只扩展原类中没有的方法
延展(extension):
延展是为了管理类的私有方法, 必须是有源代码的类, 把代码之间写道.m文件中
协议:
协议是开发过程中特别常用的一种方法, 最大的作用就是回调, 在自己不想做某件事的时候, 可以委托其他类去执行这段代码, 在UI中, 当一个视图1跳转到视图2, 视图2返回到视图1 的时候, 如果需要视图1执行某段代码,某个操作, 就可以用协议实现
协议需要注意的地方:
1. 定义完一套协议后需要设置代理人,遵循这套协议的类必须设置代理人为这个类的对象
2. UI中, 哪个视图挑战过来的,跳转回去的时候便由这个视图的对象来执行需要实现的方法
3. 设置代理人属性的时候,为了防止内存的循环调用, 必须设置属性的特性为assign