如何在Swift 4中保持Realm List属性?
使用Swift 4和Realm 3.0.1,我想将Realm对象列表存储在父领域对象的属性中。 我遇到了以下问题:
在Swift 4中,应该被保存到Realm中的属性必须是@objc dynamic
,例如@objc dynamic var id: String = ""
。 但是,Realm的数组replacetypesList
不能以这种方式存储: @objc dynamic var children: List<Child>? = nil
@objc dynamic var children: List<Child>? = nil
导致这个编译器错误:
属性不能被标记@objc,因为它的types不能在Objective-C中表示
更多的上下文,这里是一个完整的例子:
final class Child: Object { @objc dynamic var name: String = "" } final class Parent: Object { // this fails to compile @objc dynamic var children1: List<Child>? // this compiles but the children will not be persisted var children2: List<Child>? }
那么有没有另外一种方法来存储Realm和Swift 4中的对象列表?
领域List
不能是nil
,他们不需要@objc dynamic
。 他们只应该被let
,尽pipe我找不到在文档中具体提到的那个,但有一个来自领域贡献者的评论 ,它专门调用它
文档中有属性的备忘单 。
let dogs = List<Dog>()