协议protocol相关笔记

 1,@interface AddressBook: NSObject <NSCopy>如果你的类实现了多项协议,协议之间用逗号分开. 
 协议不引用任何类型,它是无类的.任何类都可以遵守Drawing协议. 
   
 2,可以使用ConformsToProtocal:方法检查一个对象是否遵守某项协议. 
 例如有一个名为currentObject的对象,并且想要查看它时候是遵循Drawing协议.可以向他放松绘图消息 
 id currentObjec; 
 if([currentObjec : ConformsToProtocal: @protoco (Drawing) : == YES]){ 
 ....//DO SOMETHING; 
 } 
   
 这里使用一个专用的@protocol指令用于获取一个协议名称.并产生一个Protocol对象. 
   
 3,通常在类型名称之后的<>中添加协议名称,可以借助编译器来检查变量的一致性.id <Drawing> currentObject; 
 这告诉编译器currentObject将包含遵守Drawing协议的对象.如果这个对象遵循多个协议,可以用逗号隔开. 
   
4, 定义一项协议的时候,可以扩展现有的协议. 
 @protocol Drawwing3D <Drawing>说明Drawwing3D协议也使用了Drawing协议. 
   
 最后分类也可以采用一项协议 
 @interface Fraction (Stuff) <NSCopy,NSCoding> 
 此处Fraction类拥有一个Stuff分类,这个分类采用了NSCopy,NSCoding两个协议. 

 和类名称一样,协议名称也是唯一的. 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值