一、 类的扩展
一、Category(分类或类目)
主要的作用:是为没有源代码的类添加方法,通过Category添加的方法会成为原类的一部分,从而达到扩展一个类的功能。
(1) Category与Subclass的区别:
1、Category只能为类添加方法,而子类既能为类添加方法又能添加变量
2、Catagory新添加的方法会成为类的一部分,能被子类继承
3、调用的对象不同。
二、Extension
Extension的主要作用是管理类的私有方法。
在设计一个类的时候,有些方法需要对外公开(我们称之为接口interface),有些方法仅仅内部使用(比如:是某一个方法的一个小步骤)Extension的功能是帮我们去管理这些内部使用方法。
// Extension针对的时自己的类,必须有源代码的类。
定义Extension:在.m文件中。
@interface xxx(ExtensionName)
//方法列表
@end
@implenmentation xxx
//方法实现
@end
三、Category与Extension的区别
1、category为没有源代码的类添加方法,而Extension管理类的私有方法,就是管理有源代码的类的方法
2、category需要定义一对.h和.m,而Extension把代码写到原始类的.m文件中