使用谓词过滤NSDictionary [英] Filtering NSDictionary with predicate
本文介绍了使用谓词过滤NSDictionary的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用一个NSDictionary本身包含字典的一些键及其值。格式如下,
I am using a NSDictionary that itself contains dictionaries some keys and its values.The format is like ,
{
"1" = {
"key1" = "ss",
"key2" = "rr",
"name" = "nm"
},
"2" = {
"key1" = "tt",
"key2" = "vv",
"name" = "gf"
},
"3" = {
"key1" = "nm",
"key2" = "vv",
"name" = "gf"
},
"4" = {
"key1" = "tt",
"key2" = "vv",
"name" = "gf"
},
}
我需要过滤key1应为tt的情况和key2应该使用NSPredicatevv。
I need to filter with the case that key1 should be "tt" and key2 should "vv" using NSPredicate.
推荐答案
假设
mainDict = {
"1" = {
"key1" = "ss",
"key2" = "rr",
"name" = "nm"
},
"2" = {
"key1" = "tt",
"key2" = "vv",
"name" = "gf"
},
"3" = {
"key1" = "nm",
"key2" = "vv",
"name" = "gf"
},
"4" = {
"key1" = "tt",
"key2" = "vv",
"name" = "gf"
},
}
现在您可以按以下方式过滤:
Now you can filter by the following way:
NSArray *resultArray = [[mainDict allValues] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(key1 == %@) AND (key2==%@)", @"tt",@"vv"]];
请尝试检查:
NSMutableDictionary *mainDict=[[NSMutableDictionary alloc] init];
for(int i=1; i<=3; i++)
{
[mainDict setObject:[NSDictionary dictionaryWithObjectsAndKeys:@"tt",@"key1",@"vv",@"key2",@"ttqwdwd",@"name", nil] forKey:[NSString stringWithFormat:@"%i",i]];
}
[mainDict setObject:[NSDictionary dictionaryWithObjectsAndKeys:@"tt",@"key1",@"kk",@"key2",@"ttwwdwd",@"name", nil] forKey:[NSString stringWithFormat:@"%i",4]];
[mainDict setObject:[NSDictionary dictionaryWithObjectsAndKeys:@"tt",@"key1",@"kk",@"key2",@"ttwwdwd",@"name", nil] forKey:[NSString stringWithFormat:@"%i",5]];
NSArray *resultArray = [[mainDict allValues] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(key1 == %@) AND (key2==%@)", @"tt",@"vv"]];
NSLog(@"%@",resultArray);
这篇关于使用谓词过滤NSDictionary的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文