从NSArray中过滤NSDictionary



我有一个NSArray包含NSDictionary对象键{"name","age","weight"}其中键名为NSString,年龄为NSInteger,权重为float值

我需要用以下条件过滤NSArray1.name包含'abc'2.18岁以下3.重量小于50

欢迎回答

这可以工作,但一点也不优雅。

NSMutableArray *filteredArray = [[NSMutableArray alloc]init];
for (NSDictionary *dic in myArray){
int age = [[dic objectForKey:@"age"]intValue];
     if (age < 18){
        float weight = [[dic objectForKey:@"weight"]floatValue];
        if (float < 50){
        string name = [dic objectForKey:@"name"];
        if (![string rangeOfString:@"bla"].location == NSNotFound) {
            [filteredArray addObject:dic];
         }
        }
     }

}

另一个优雅的解决方案是使用枚举块和谓词来检查字典内容,但我在objective-C中不太习惯这样做。

最新更新