我有NSArray
NSDictionaries
。
每个词典都有一个BOOL值的键。
我需要对该数组进行排序,结果应该是2 NSArrays
:一个是带有0值的字典,另一个带有带有1值的字典。
这样做的最佳方法是什么?
答案 0 :(得分:2)
不确定这是不是你的意思,但是:
NSMutableArray *yesDicts = [NSMutableArray array];
NSMutableArray *noDicts = [NSMutableArray array];
for (NSDictionary *dict in array) {
NSNumber *yesorno = dict[@"key"];
if ([yesorno boolValue] == YES) {
[yesDicts addObject:dict];
} else {
[noDicts addObject:dict];
}
}
其中array
是初始数组,每个字典中的BOOL值存储在@"key"
。
它还使用新的字典访问语法
答案 1 :(得分:1)
我认为“最佳”方式是使用NSPredicates
,例如:
NSPredicate *yesPredicate = [NSPredicate predicateWithFormat:@"%K == %@", @"key", [NSNumber numberWithBool:YES]];
NSArray *filteredYESResults = [allResultsArray filteredArrayUsingPredicate:yesPredicate];
NSPredicate *noPredicate = [NSPredicate predicateWithFormat:@"%K == %@", @"key", [NSNumber numberWithBool:NO]];
NSArray *filteredNOResults = [allResultsArray filteredArrayUsingPredicate:noPredicate];