我有以下Realm Object结构:
class ParentObject: Object {
let nestedObjects = List<NestedObject>
}
class NestedObject: Object {
@objc dynamic var id: Int = 0
}
是否可以过滤ParentObject
仅返回包含NestedObject
匹配数组中包含的id
之一的let ids = [1, 2, 3]
let filtered = realm
.objects(ParentObject.self)
.filter("nestedObjects.id IN %@", ids)
的内容?
我试过这样做:
Terminating app due to uncaught exception 'Invalid predicate', reason: 'Key paths that include an array property must use aggregate operations'
但是我收到了这个错误:OR
。
也许我应该尝试使用多个IN
代替DATEDIFF
?
答案 0 :(得分:3)
您需要ANY nestedObjects.id IN %@
的谓词。 ANY
/ ALL
/ NONE
修饰符非常重要,因为它确定集合中有多少对象必须匹配才能使谓词评估为true。