使用 NSPredicate 过滤 NSDictionaries 的 NSArray

Posted

技术标签:

【中文标题】使用 NSPredicate 过滤 NSDictionaries 的 NSArray【英文标题】:Filtering NSArray of NSDictionaries using NSPredicate 【发布时间】:2012-10-12 05:01:56 【问题描述】:

我有一个这样的数组:


NSArray* myArray=[NSArray arrayWithObjects:
                      [NSDictionary dictionaryWithObjectsAndKeys:@"123",@"imageid",@"Jeff",@"imagename", nil],
                      [NSDictionary dictionaryWithObjectsAndKeys:@"234",@"imageid",@"Sophie",@"imagename", nil],
                      [NSDictionary dictionaryWithObjectsAndKeys:@"456",@"imageid",@"David",@"imagename", nil]
                      , nil];

我想得到一个目标数组,其中包含: 123,234,456 使用NSPredicate如何做到这一点?

【问题讨论】:

【参考方案1】:

试试这个。你可能不需要NSPredicate

NSArray *targetArray = [myArray valueForKey:@"imageid"];

更新: 更好的理解valueForKey,请参考apple documentation of NSArray

【讨论】:

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

NSPredicate的使用

使用 NSPredicate 过滤文件路径

使用 NSPredicate 过滤 - 数据类型?

如何使用 NSPredicate 过滤 NSArray

使用 NSPredicate 根据 NSDictionary 键过滤 NSArray

使用 NSPredicate 过滤数组