首页 > 代码库 > ios学习总结(四)
ios学习总结(四)
有关协议的注意事项:
A、如果一个类遵守某项协议,那么它的子类也遵守该协议。B、协议不引用任何类,它是无类的(classless) 。任何类都可以遵守某项协议。C、通过在类型名称之后的尖括号中添加协议名称,可以借助编译器的帮助来检查变量的一致性,如
下:
id <Drawing> currentObject;
这告知编译器 currentObject 将包含遵守 Drawing 协议的对象。 如果向currentObject 指派静态类型的对
象,这个对象不遵守 Drawing 协议,编译器将给出 warning。
再次提到 id 类型,如果向 currentObject 指派一个 id 变量,不会产生这条消息,因为编译器不知道存
储在 id 变量中的对象是否遵守 Drawing 协议。D、如果这个变量保存的对象遵守多项协议,则可以列出多项协议,如下:
id <Drawing, Drawing 1> currentObject;E、定义一项协议时,可以扩展现有协议的定义。以下协议
@protocol Drawing3D <Drawing>
说明 Drawing3D 协议也采用了 Drawing 协议。因此采用 Drawing3D 协议的类都必须实现此协议列出
的方法,以及 Drawing 协议的方法。F、分类也可以采用一项协议,如:
@interface Fraction (stuff) <NSCopying, NSCoding>
此处,Fraction 拥有一个分类 stuff,这个分类采用了 NSCopying 和 NSCoding 协议。
ios学习总结(四)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。