现在的位置: 首页 > 综合 > 正文

协议protocol相关笔记

2014年09月24日 ⁄ 综合 ⁄ 共 708字 ⁄ 字号 评论关闭

 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两个协议. 

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


抱歉!评论已关闭.