我正在使用Xcode 7.2,Swift 2.1.1。我在
下面有一个Realm模型对象class B: Object {
dynamic let lists = List<A>()
}
但是Swift编译器给我一个错误说:
无法将属性标记为动态,因为其类型无法在Objective-C
中表示
我看到Realm的文档说:
Realm模型属性需要动态var属性,以便这些属性成为底层数据库数据的访问者。
这有两个例外:List和RealmOptional属性 不能声明为动态,因为通用属性不能 在Objective-C运行时中表示,用于动态 调度动态属性,并且应始终使用
声明let
但是声明let
现在似乎并没有解决这个问题。我错过了什么?
答案 0 :(得分:3)
您引用的文档包括以下内容(强调我的):
列表和RealmOptional属性不能声明为动态,因为通用属性不能在Objective-C运行时[...]中表示,并且应始终使用
let
声明。
这意味着您的财产应该如下声明:
let lists = List<A>()
Realm Swift文档最近获得了property declaration cheatsheet,希望能够澄清不同类型声明的要求。