Swift学习笔记系列——(21)协议
Tags: Swift 学习笔记 发布时间:2015-08-15 Swift学习笔记系列——(21)协议协议用来做什么?规定一些特定的要求:方法、属性等。 协议的实现有谁来做?类、结构体和枚举 协议定义属性要求实例属性or类型属性类型属性采用static关键字 属性名字属性类型读写or只读方法要求实例方法or类型方法类型方法用static关键字声明类遵循协议实现类型方法可以用static,也可以用class变异方法要求用mutating标记协议中的方法,就是声明这个方法如果由结构体和枚举实现,需要修改自身属性。 构造方法要求类实现协议要求的构造方法用指定构造方法和方便构造方法实现都可以 可失败构造方法要求协议要求的可失败构造方法的实现不受限制; 可选的协议要求有可选要求的协议用@objc标记 协议继承只对类开放的协议协议的组合将两个以上协议组合成一个临时的组合体,当作类型使用。 协议扩展针对方法和属性的扩展 给协议提供默认的实现扩展协议,送给实现类型一个协议要求的默认实现,不推辞的话就用了,想推辞就自己再写一套实现。 给协议扩展添加额外的约束where语句添加约束条件,在这些约束条件下,这种扩展才生效 使用协议协议作为类型函数、方法和构造方法的参数或者返回值的类型常量、变量或者属性的类型数组、字典以及其他集合中元素的类型是否满足协议的检查is检查是否满足协议 造型as?向下造型返回可选值as!强制向下造型委托设计模式协议的实现通过扩展添加对协议的实现对类型的扩展中添加对协议实现,结果是类型的实例不论是在扩展前还是扩展后初始化的,都有了协议中的内容。 本章思维导图(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |