大佬教程收集整理的这篇文章主要介绍了objective-c – 如何过滤NSDictionarys和NSDictionarys的数组?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
> NSString *名称
> NSString * ID
> NSDictionary * phonenumbersDict
现在我想过滤这个数组,找到一个具有phonenumbersDict键@“keyIAmLookingFor”和值@“valueIAmLookingFor”的数组.
NSMutableArray *addressBookPhoneIndividuals = [NSMutableArray array]; for (int i = 0; i < x; i++) { [addressBookPhoneIndividuals addObject:@{ @"name" : @"...",@"ID" : @"...",@"phonenumbers" : @{...} }]; }
NSString *keyIAmLookingFor = @"work"; NSString *valueIAmLookingFor = @"444-567-9019"; NSArray *addressBookPhoneIndividuals = @[ @{ @"name" : @"Mike Rowe",@"ID" : @"134",@"phonenumbers" : @{ @"work" : @"123-456-8000",@"school" : @"647-5543",@"home" : @"123-544-3321",} },@{ @"name" : @"Eric Johnson",@"ID" : @"1867",@"phonenumbers" : @{ @"work" : @"444-567-9019",@"other" : @"143-555-6655",@{ @"name" : @"Robot Nixon",@"ID" : @"-12",@"phonenumbers" : @{ @"work" : @"123-544-3321",@"school" : @"123-456-8000",@"home" : @"444-567-9019",]; NSString *keyPath = [@"phonenumbers." StringByAppendingString:keyIAmLookingFor]; NSPreDicate *preDicate = [NSComparisonPreDicate preDicateWithLeftExpression:[NSExpression expressionForKeyPath:keyPath] rightExpression:[NSExpression expressionForConstantValue:valueIAmLookingFor] modifier:NSDirectPreDicateModifier type:NSEqualToPreDicateOperatorType options:0]; NSArray *result = [addressBookPhoneIndividuals filteredArrayUsingPreDicate:preDicate];
这将返回包含“Eric Johnson”字典的数组.
我喜欢在进行任何类型的复杂匹配时推荐NSComparisonPreDicate.查看修改器,类型和选项的选项.那里有一些很好的内置匹配引擎 – 包括正则表达式和不区分大小写.无论如何,这里可能没有必要,所以你可以替换以下内容:
NSPreDicate *preDicate = [NSPreDicate preDicateWithFormat:@"%K = %@",keyPath,valueIAmLookingFor];
如果您只关心第一个结果,则可以完全跳过keyPath /谓词业务:
for (NSDictionary *individualDict in addressBookPhoneIndividuals) { NSDictionary *phonenumbers = [individualDict objectForKey:@"phonenumbers"]; NSString *possibleMatch = [phonenumbers objectForKey:keyIAmLookingFor]; if ([possibleMatch isEqualToString:valueIAmLookingFor]) { return individualDict; } } return nil;
以上是大佬教程为你收集整理的objective-c – 如何过滤NSDictionarys和NSDictionarys的数组?全部内容,希望文章能够帮你解决objective-c – 如何过滤NSDictionarys和NSDictionarys的数组?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。