欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

协议的一致性

程序员文章站 2022-06-02 11:47:23
...
@objc protocol HasArea {
    var area: Double { get }
    @objc optional var username: String? {get set}
    
    @objc optional func getControllerData(isRefresh: Bool) -> Void
}

注意: @objc用来表示协议是可选的,也可以用来表示暴露给Objective-C的代码,此外,@objc型协议只对有效,因此只能在类中检查协议的一致性。

协议前有@objc修饰:<br />1. 协议里面的属性或方法可以声明为optional。<br />2. 协议只能被类遵循。

协议前面没有@objc修饰:<br />1. 该协议可以被类、结构体和枚举遵循。<br />2. 协议里面的方法不能声明为optional。

原文转载