领域:属性 声明为链接对象的来源 属性 不存在

Realm: property declared as origin of linking objects property does not exist

我正在为以下代码使用 Realm Swift:

class Item: Object {
    @Persisted(primaryKey: true) var name = ""
    @Persisted(originProperty: "items") var collection: LinkingObjects<SomeCollection>
}

class SomeCollection: Object {
    @Persisted(primaryKey: true) var name = ""
    let items = List<Item>()
}

在应用程序启动时,当我初始化 Realm 实例时,我得到:

Property 'SomeCollection.items' declared as origin of linking objects property 'Item.collection' does not exist" UserInfo={NSLocalizedDescription=Schema validation failed due to the following errors:

有趣的是,如果我将 LinkingObjects 的行更改为:

let collection = LinkingObjects(fromType: SomeCollection.self, property: "items")

然后它工作正常,但是,在将 Item 实例添加到 [=18= 的 items 列表后,collection 属性 Item 实例没有显示任何链接 SomeCollection,我认为应该自动链接?

我做错了什么?

感谢帮助!

这个

let items = List<Item>()

需要这样

@Persisted var items = List<Item>()

@Persisted var items: List<Item>

取决于用例。

let 语法是我们过去的做法。

这叫做 Inverse Relationship 并且在文档中有更进一步的介绍。