是否可以使用字典数组创建NSPredicate?
我有以下结构:
> 'aaba'.replace('a','').replace('b','')
< ''
我希望通过这些对过滤我的[{ name: "foo", city:"Paris"},{name:"bar", city:"London"}]
。 (假设属性在CoreData中具有相同的名称)
传递数组时,我可以使用关键字NSFetchRequest
。但我不知道如何使用一系列字典来完成这项工作。
答案 0 :(得分:1)
我认为您无法使用IN
,因此您需要使用多个OR
。概括地说:
对于每个元素(dictionary
),构造一个形式的谓词:
[NSPredicate predicateWithFormat:@"name == %@ AND city == %@",[dictionary objectForKey:@"name"], [dictionary objectForKey:@"city"]];
将每个此类谓词添加到谓词的NSMutableArray(array
)
使用以下命令从数组构建复合谓词
[NSCompoundPredicate orPredicateWithSubpredicates:array]
如果性能是一个问题,请考虑使用替换变量而不是格式来构建单个谓词。