领域中的动态属性

时间:2015-10-16 18:29:03

标签: ios swift2 realm

我开始在iOS 8或更高版本上使用Realm并查看Realm中的文档。我注意到所有属性都在它们前面有dynamic个关键字。 Realm需要这个吗?我已经阅读了关于关键字的Apple文档,可以在这里找到。 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html

2 个答案:

答案 0 :(得分:36)

是的,对于普通var属性,它是必需的。来自realm docs

  

Realm模型属性需要dynamic var属性才能使这些属性成为底层数据库数据的访问者。

     

有两个例外:ListRealmOptional属性不能声明为动态,因为无法在Objective-C运行时表示泛型属性,后者用于动态调度动态属性,并且应始终使用let声明。

dynamic 关键字允许Realm通知模型变量的更改,并因此将它们反映到数据库中。

答案 1 :(得分:1)

在Swift 3中,我们声明了我们的属性

dynamic var Name : String = ""

在Swift 4中,我们声明了我们的属性

@objc dynamic var Name : String = ""

我也制作了关于此错误的小视频。如果你不了解编码艺术。观看视频

https://youtu.be/Wn3lLELLq4c