从 NSArray 过滤 NSDictionary
Posted
技术标签:
【中文标题】从 NSArray 过滤 NSDictionary【英文标题】:Filter NSDictionary from NSArray 【发布时间】:2015-09-03 06:50:27 【问题描述】:我有一个 NSArray,它包含带有键的 NSDictionary 对象"name","age","weight" 其中键名是 NSString ,age 是 NSInteger ,weight 是 float Value
我需要用以下条件过滤 NSArray 1.名称包含'abc' 2.18岁以下 3.体重小于50
我们将不胜感激
【问题讨论】:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name CONTAINS[c] %@ AND SELF.age.integerValue 【参考方案1】:这可行,但一点也不优雅。
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 中不够舒服。
【讨论】:
以上是关于从 NSArray 过滤 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章
使用特定键的值过滤 NSDictionary 的 NSArray
使用 NSDictionary 按 int 值过滤 NSArray
使用 NSPredicate 根据 NSDictionary 键过滤 NSArray
如何通过键过滤 NSArray:值,即在 NSDictionary