将变量声明为动态时:
dynamic var myProperty: Bool = true
通过添加@objc标记,是否有任何优势或行为改变?
@objc dynamic var myProperty: Bool = true
答案 0 :(得分:1)
在Swift 4中,如果dynamic
变量没有@objc
属性,则会给出编译错误。所以,你可以说编译能力是添加@objc
的一个优势。
答案 1 :(得分:0)
请参阅Apple的文档本身。它声明
使用动态修饰符标记的声明也必须使用@objc属性显式标记,除非声明的上下文隐式添加@objc属性。有关何时隐式添加@objc属性的信息。见Declaration Attributes