OC 分类 协议

一 分类
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>(代理模式)



转载于:https://my.oschina.net/wolx/blog/337582

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值