/*
作用:
1、Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。
2、协议能够被类,枚举,结构体实现,满足协议要求的类型被称为协议的遵循者。
3、遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等
语法:
protocol 协议名 {
}
struct 类型:协议一,协议二 {
class 类型:父类,协议一,协议二 {
}
说明:
1、协议本身不实现任何功能,但你可以将它当做类型来使用
2、协议也可以继承一个或多个(用逗号隔开)其它协议
(协议前添加@objc说明是可选的,属性或方法前添加optional)
*/
@objc protocol AddProtocol {
//只读
var a:Int {get}
//可读可写
var b:Int {getset}
//普通方法
func add() ->Int
@objcoptional var c:Int {get}
@objcoptional func optionalFunc()
}
protocol SubProcotol {
func sub()->Int
}
class Calculate: NSObject,AddProtocol,SubProcotol {
var a:Int {
return100
}
var b:Int = 0
func add() ->Int {
returna+b
}
func sub() ->Int {
returna-b
}
}
var calc = Calculate()
//calc.a = 100
calc.b =200
print(calc.add())
print(calc.sub())
let c2 = calcas AddProtocol
//这样调用会前置解包,解包失败会崩溃
//c2.optionalFunc!()
//这样调用会隐式解包,解包失败返回nil
c2.optionalFunc?()
原文地址:https://www.jb51.cc/swift/321698.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。