协议的一致性
程序员文章站
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。