我有一个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中不太习惯这样做。