我有这个NSPredicate:
results?.filter("ANY childs.property = 'prop1' AND ANY childs.key contains[c] %@", "key1")
上面的代码返回所有具有子属性的对象' prop1'或者是密钥' key1'
的孩子我需要的是只返回具有子属性的对象同时拥有属性' prop1' AND key' key1'
详细说明
我有Person
s
每个Person
都有一个childs
属性,该列表是Kid
每个Kid
都有两个字符串属性prop
和key
Person[0]
在孩子列表中有两个孩子
Kid[0].prop = prop1
和Kid[0].key = key1
Kid[1].prop = prop2
和Kid[0].key = key2
Person[1]
在孩子列表中有两个孩子
Kid[0].prop = prop1
和Kid[1].key = key2
Kid[1].prop = prop2
和Kid[1].key = key1
上面的谓词会返回两个人,而我需要的只是返回第一个人,因为只有第一个人有一个prop1
和key1
的孩子
非常感谢帮助
答案 0 :(得分:2)
要确保同一对象满足这两个条件,您需要使用子查询:
results?.filter("SUBQUERY(childs, $child, $child.property = 'prop1' AND $child.key contains[c] %@).@count > 0", "key1")