加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift--13协议使用

发布时间:2020-12-14 06:17:13 所属栏目:百科 来源:网络整理
导读:/* 作用: 1 、 Protocol( 协议 ) 用于统一方法和属性的名称,而不实现任何功能。 2 、协议能够被类,枚举,结构体实现,满足协议要求的类型被称为协议的遵循者。 3 、遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等 语法: protocol 协议名 {

/*

作用:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读