需求:如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式
>继承
>分类(Category)
(一)了解Catagory
1.
Catagory,可以动态的为已经存在的类添加新的行为(方法),功能扩展,使用Category对类进行扩展时,不需要创建子类.
Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中
category(分类、类别、类目)--(用来功能分类,分工,利于开发,一般以功能命名)
2.示例
//声明 @interface 类名(分类名称) @end //实现 @implementation 类名(分类名称) @end
3.通过 New File 创建,-->OS X(下的Cocoa)-->Objective-C category-->
注意:#import "Dog+YY.h”是说清楚分类叫什么名称
/*
分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法
使用注意:
1.分类只能增加方法,不能增加成员变量
2.分类方法实现中可以访问原来类中声明的成员变量
3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用
4.方法调用的优先级:分类(最后参与编译的分类优先) --> 原来类 --> 父类
*/
时间: 2024-10-12 22:04:55