Swift--13协议使用
/* 作用: 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: 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?() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |