您的位置:首页 > 移动开发 > Swift

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()
}

注意二:

如果定义我们的协议只能在我们被我类遵守,那么可以在协议后面 加: class

protocol 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("打篮球")
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: