我开始在iOS 8或更高版本上使用Realm并查看Realm中的文档。我注意到所有属性都在它们前面有dynamic
个关键字。 Realm需要这个吗?我已经阅读了关于关键字的Apple文档,可以在这里找到。 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html
答案 0 :(得分:36)
是的,对于普通var
属性,它是必需的。来自realm docs。
Realm模型属性需要
dynamic var
属性才能使这些属性成为底层数据库数据的访问者。有两个例外:
List
和RealmOptional
属性不能声明为动态,因为无法在Objective-C运行时表示泛型属性,后者用于动态调度动态属性,并且应始终使用let
声明。
dynamic 关键字允许Realm通知模型变量的更改,并因此将它们反映到数据库中。
答案 1 :(得分:1)
在Swift 3中,我们声明了我们的属性
dynamic var Name : String = ""
在Swift 4中,我们声明了我们的属性
@objc dynamic var Name : String = ""
我也制作了关于此错误的小视频。如果你不了解编码艺术。观看视频