协议Protocol

协议Protocol

协议:类型的合同约定,只描述外部接口,不提供具体实现

协议包含成员:

属性

实例方法

类方法

初始化器,不常用

析构器,不常用

协议中无法包含实例变量成员

协议中定义的属性本质上是访问器方法,编译器不会合成实例变量

一个类遵守协议,需要实现协议约定的所有@required成员

协议中的属性须在实现类的.h文件中声明(编译器合成实例变量需要)

遵守协议后却没有实现必选协议方法时,会出现警告提示

协议类型变量被赋值非协议类型对象时,会出现警告提示

协议本质上是一种类型,可以作为声明类型,但不能创建实例

使用conformToProtocol检查对象是否实现了协议

一个协议可以继承一个或多个协议

实现子协议的类型,也必须实现父协议中约定的成员

可以使用protocol<A,B...>来组合多个协议

实现组合协议的类型,必须实现组合协议中的每一个协议

可选协议:协议的某些成员可以定义为optional,不必实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,817评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,949评论 19 139
  • 协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以采纳...
    爆裂少女小鸭子阅读 369评论 0 1
  • 协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体 或枚举都可以遵...
    GY1994阅读 1,440评论 0 0
  • 丁酉年乙巳月,至与卿之一面,惊与天人。卿之姿美,如朝阳之海出,临暮之彩霞,慕而盼之,爱而敬之!后,吾心如悬...
    树上有花阅读 536评论 0 0

友情链接更多精彩内容