NSPredicate 和 NSArray

Posted

技术标签:

【中文标题】NSPredicate 和 NSArray【英文标题】:NSPredicate and NSArray 【发布时间】:2014-02-07 17:26:46 【问题描述】:

有没有办法设置NSPredicate 来搜索NSArray 中的所有项目?

类似:

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"group.name == %@", arrayOfNames];

【问题讨论】:

【参考方案1】:

如果右侧是数组或集合,则使用“IN”而不是“==”:

[NSPredicate predicateWithFormat: @"group.name IN %@", arrayOfNames]

【讨论】:

哈!我知道有办法,但记不住语法,谢谢!【参考方案2】:

是的,您可以像这样使用NSPredicateNSArray

NSArray *data = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"foo" forKey:@"BAR"]];    
NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(BAR == %@)", @"foo"]];

【讨论】:

以上是关于NSPredicate 和 NSArray的主要内容,如果未能解决你的问题,请参考以下文章

获取的属性和 NSPredicate

NSPredicate 和过滤

NSPredicate 同时使用 IN 和 LIKE

NSPredicate 和 NSRegularExpression

NSPredicate 用于多个对象和属性

为啥 NSPredicate 和 DateComponents 不起作用