将 LinkingObjects 视为列表

Treat LinkingObjects as List

我有一个模型,它通过对自身的引用来引用所有对象。我想我可以将此 属性、LinkingObjects(fromType: Outfit.self, property: "clothes") 用作 List<Outfit> 并将其直接修补到我现有的代码中。

具体来说我需要使用Listobserve函数。有什么办法可以把 LinkingObjectsList 一样对待吗?

让我举个例子 - 你可能在倒着看,或者我可能没有完全理解这个问题。

假设您有一套服装 class,其中有一个 属性 服装对象列表

OutfitClass: Object {
   let clothingObjects = List<ClothingClass>
}

然后是一个 class,它将每种服装类型与 Link 一起保存到特定的服装 Class。现在我们有一个反比关系。

ClothingClass: Object {
   @objc dynamic var description = ""
   let outfits = LinkingObjects(fromType: OutfitClass.self, property: "clothingObjects")
}

所以每套衣服都有一个清单,包括衣服、夹克、纽扣衬衫、领带等,每件物品都会知道它属于哪套或几套。

那应该满足模特所在的要求(服装Class)

which references all objects (the OutfitClass) with reference to itself

我的理解是 objective 是您想要向引用特定服装项目的所有 Outfit 对象添加一个观察者。因此,例如:红色领带服装 Class 对象想要观察所有引用该红色领带的服装。

所以方法是这样的

首先,我们需要加载我们感兴趣的 Clothing Class 对象

let redTieResults = realm.objects(ClothingClass.self).filter("descripton == 'Red Tie'")

这里没有错误检查,但我们假设 Red Tie 肯定存在

let thisRedTie = redTieResults.first!

现在让我们获取结果,我们可以向其中添加一个观察者,对于在其列表中具有此特定 Red Tie 对象的任何 Outfit class 对象

let outfitResults = realm.objects(OutfitClass.self).filter("ANY clothingObjects == %@", thisRedTie)

然后您将观察者添加到 outfitResults