微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift--13协议使用

/*

作用:

1Protocol(协议)用于统一方法属性名称,而不实现任何功能

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

原文地址:https://www.jb51.cc/swift/321698.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐