Ios 领域Swift:使用IN谓词按嵌套列表属性筛选对象
我有以下领域对象结构:Ios 领域Swift:使用IN谓词按嵌套列表属性筛选对象,ios,swift,realm,predicate,Ios,Swift,Realm,Predicate,我有以下领域对象结构: class ParentObject: Object { let nestedObjects = List<NestedObject> } class NestedObject: Object { @objc dynamic var id: Int = 0 } 但我得到了这个错误:由于未捕获的异常“无效谓词”而终止应用程序,原因是:“包含数组属性的关键路径必须使用聚合操作” 也许我应该尝试使用多个或而不是中的?在%@中使用任何嵌套对象的谓词
class ParentObject: Object {
let nestedObjects = List<NestedObject>
}
class NestedObject: Object {
@objc dynamic var id: Int = 0
}
但我得到了这个错误:由于未捕获的异常“无效谓词”而终止应用程序,原因是:“包含数组属性的关键路径必须使用聚合操作”
也许我应该尝试使用多个
或而不是中的?在%@
中使用任何嵌套对象的谓词。ANY
/ALL
/NONE
修饰符很重要,因为它决定集合中有多少对象必须匹配谓词才能计算为true。您想要%@
中的ANY nestedObjects.id的谓词。ANY
/ALL
/NONE
修饰符很重要,因为它决定了集合中有多少对象必须匹配谓词才能计算为true。我正要亲自回答,但是哇,你太快了!!很好的回答解释了修饰语。我正要自己回答,但是哇,你太快了!!很好的回答解释了修饰语。
let ids = [1, 2, 3]
let filtered = realm
.objects(ParentObject.self)
.filter("nestedObjects.id IN %@", ids)