@objc标记是否会改变动态变量的行为?

时间:2018-03-14 22:46:20

标签: swift

将变量声明为动态时:

dynamic var myProperty: Bool = true
通过添加@objc标记,

是否有任何优势或行为改变?

@objc dynamic var myProperty: Bool = true

2 个答案:

答案 0 :(得分:1)

在Swift 4中,如果dynamic变量没有@objc属性,则会给出编译错误。所以,你可以说编译能力是添加@objc的一个优势。

答案 1 :(得分:0)

请参阅Apple的文档本身。它声明

  

使用动态修饰符标记的声明也必须使用@objc属性显式标记,除非声明的上下文隐式添加@objc属性。有关何时隐式添加@objc属性的信息。见Declaration Attributes