Swift 协议protocol

<style></style>

/*

 定义协议时候,协议后面最好跟上class

 delegate的属性最好用weak,用于防止循环引用

 */

protocol BuyTicketDelegate : class{

    func buyTicket()

}

 

class Person22{

    weak var delegate:BuyTicketDelegate?

    

    func gotoBeiJing() {

        delegate?.buyTicket()

    }

}

 

 

/*

 定义可选类型的协议

 optional属于OC特性,如果协议中油可选的方法,那么必须在protocol前面加上@objc,也需要在optional前面加上@objc

 */

@objc protocol TestProtocol{

    @objc optional func test()

}

 

class Dog:TestProtocol{

    

}

上一篇:Easyjs 细说Javascript里的 闭包(Closure)


下一篇:block和delegate的选择