Swift--13协议使用

来源:互联网 发布:男士休闲裤推荐知乎 编辑:程序博客网 时间:2024/06/05 10:47

/*

作用:

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

    

    @objcoptionalvar c:Int {get}

    @objcoptionalfunc 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 = calcasAddProtocol

//这样调用会前置解包,解包失败会崩溃

//c2.optionalFunc!()

//这样调用会隐式解包,解包失败返回nil

c2.optionalFunc?()

原创粉丝点击