使用NSPredicate过滤数组

时间:2015-07-07 06:11:26

标签: ios objective-c

我有一些对象。 Object具有NSMutabledictionary类型的属性。 我想为特定键过滤此数组" EEX_City"其价值是"纽约"。任何在不使用for循环的情况下编写谓词的方法。 enter image description here

请参阅随附的屏幕截图并指导我设置过滤数据的谓词。我试过但它不适用于这种嵌套结构。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

如果您想在数组中使用键EEX_City的所有值的数组,请使用valueForKeyPath

NSArray *array = [array_Exhibitor valueForKeyPath:@"EEX_City"];

答案 1 :(得分:1)

你很懒,但是你走了:

NSArray *responseArray = @[
                   @{
                       @"EEX_City" : @"dummy_data_city",
                       @"EEX_Name" : @"dummy_data",
                       @"EEX_BoothType" : @"dummy_data",
                       },
                   @{
                       @"EEX_City" : @"Whatever",
                       @"EEX_Name" : @"Booths",
                       @"EEX_BoothType" : @"Another one"
                       }
                   ];
NSMutableArray *results = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in responseArray) {
    id object = [dictionary objectForKey:@"EEX_City"];
    if (object) {
        [results addObject:object];
    }
}

NSLog(@"Results: %@", results);