Swift面向协议
2017-05-20 00:00
260 查看
定义Swift协议
基本格式protocol 协议名称 { // 属性 // 方法 }
注意一:
1.Swfit的协议既可以定义属性也可以定义方法2.属性和方法,都在protocol中都不能有默认实现
3.属性定义时,必须明确指出该属性时只读/可写/可读可写
4.默认情况下protocol中属性,必须被遵守协议的类/结构体实现
protocol SportProtocol { var price: Double {set get} func playFootball() }
注意二:
如果定义我们的协议只能在我们被我类遵守,那么可以在协议后面 加: classprotocol SportProtocol :class{ var price: Double {set get} func playFootball() }
注意三:
如果希望协议中的方法或属性是可选的条件: 1.>必须在protocol前加上@objc 2.>在我们的可选方法前加上 @objc + optional @objc protocol RunProtocol { @objc var name: String {get} @objc optional func run() }
注意四:
在Swift协议中, 协议属性/方法是可以被实现的.条件: 必须在协议中的extension中提供默认实现
extension SportProtocol{ var price: Double{ return 100.0 } func playFootball(){ print("打篮球") } }
相关文章推荐
- 介绍在Swift2面向协议编程(译文)
- Swift-核心之面向协议开发
- 用 Swift 编写面向协议的视图
- 不要用子类!Swift的核心是面向协议
- Swift 2.0之初识面向协议编程
- 【译】Swift 2.0 下面向协议的MVVM架构实践
- 不要用子类!Swift的核心是面向协议
- swift 面向协议的网络请求封装
- 从 Swift 的面向协议编程说开去
- iOS开发:Swift面向协议编程初探
- WWCD 2015: Swift 里的Value Type 和面向协议
- iOS --- 面向协议的编程(swift2.3)
- swift3 面向协议编程
- Swift 面向协议编程
- swift面向协议编程(一)翻译
- swift 面向协议学习思考
- 【译】Swift 2.0 下面向协议的MVVM架构实践
- 从 Swift 的面向协议编程说开去
- Swift面向协议编程(附代码)
- Swift 【基于 Swift 面向协议编程】