/*
作用:
1、Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。
2、协议能够被类,枚举,结构体实现,满足协议要求的类型被称为协议的遵循者。
3、遵循者需要提供协议指定的成员,如属性,方法, *** 作符,下标等
语法:
protocol 协议名 {
属性、方法等
}
struct 类型:协议一,协议二 {
协议中的属性及方法的实现
class 类型:父类,协议一,协议二 {
}
说明:
1、协议本身不实现任何功能,但你可以将它当做类型来使用
2、协议也可以继承一个或多个(用逗号隔开)其它协议
3、协议中也可添加可选的属性或方法,并且只对类有效
(协议前添加@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: @H_677_301@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?()
总结以上是内存溢出为你收集整理的Swift--13协议使用全部内容,希望文章能够帮你解决Swift--13协议使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)