一 分类
1.分类的概念
在不改变类的情况,下进行类的扩展
建分类文件
new->file->cocoa->objective-c category
2.需要分类的原则
在添加方法时,不要去修改不是自己写的类,而是通过分类。
3.分类的用法
具有相同功能的方法放在一个分类中。
4.使用注意
4.1.分类不能定义成员变量
4.2.分类中可以访问原类的属性和方法。
4.3.如果分类中重复定义类原类重复的方法,原类方法会被覆盖掉
4.4.如果有多个分类具有相同方法,通过改变编译顺序改变调用方法顺序。
5.使用场景
可以对系统类进行扩展
二 协议
协议就是声明一些方法,协议本身并不提供方法的实现,谁遵守了协议,谁实现协议方法。
所有协议都遵守NSObject基础协议。
协议是一种思想体现,向上抽象,把公用的功能抽象出来,放在协议文件中。
1.创建协议文件
new->file->cocoa->objective-c protocal
文件以@protocol关键字声明,协议只有.h文件,文件中只能声明方法。
2.实现协议
@interface ClassName:NSObject<protocolname1,protocolname2>
多个协议用,隔开
3.协议方法修饰符
@requaired 必须实现 (默认)
@optional 选择实现
4.创建协议对象
ClassName<ProtocolName> *className =[[ClassName alloc]init];
5.继承关系解耦
继承->组合->通过ID万能指针动态绑定(但是无法提示方法)。
在ID绑定是通过协议约束 id<protocolName>(代理模式)

5341

被折叠的 条评论
为什么被折叠?



