我有一个模型,该模型引用所有对象并引用其自身。我以为可以将LinkingObjects(fromType: Outfit.self, property: "clothes")
这个属性用作List<Outfit>
,然后直接将其修补到我的现有代码中。
具体地说,我需要使用observe
的{{1}}函数。有什么方法可以将List
与LinkingObjects
一样对待?
答案 0 :(得分:1)
让我举个例子吧-您可能正在向后看,或者我可能没有完全理解这个问题。
假设您有一个Outfit类,该类具有服装对象的List属性
OutfitClass: Object {
let clothingObjects = List<ClothingClass>
}
,然后是一个类,其中包含每种服装类型以及返回到特定OutfitClass的链接。现在我们有了反比关系。
ClothingClass: Object {
@objc dynamic var description = ""
let outfits = LinkingObjects(fromType: OutfitClass.self, property: "clothingObjects")
}
因此,每个服装都有衣服,夹克,纽扣衬衫,领带等的列表,并且每个项目都将知道它属于哪个服装。
那应该满足模型(ClothingClass)的要求
引用自身的所有对象(OutfitClass)
我理解的目的是要向所有引用特定服装的Outfit对象添加观察者。例如:“红色领带服装类”对象要观察所有引用该红色领带的服装。
所以方法是这样的
首先,我们需要加载我们感兴趣的Clothing Class对象
let redTieResults = realm.objects(ClothingClass.self).filter("descripton == 'Red Tie'")
这里没有错误检查,但是我们假设红色领带一定存在
let thisRedTie = redTieResults.first!
现在让我们为列表中具有该特定红色领带对象的任何Outfit类对象获取结果,并向其中添加观察者
let outfitResults = realm.objects(OutfitClass.self).filter("ANY clothingObjects == %@", thisRedTie)
然后将观察者添加到服装结果