私は を持ってNSArray
いNSDictionaries
ます。各辞書には、BOOL 値のキーがあります。
その配列を並べ替える必要があり、結果は 2 になるはずNSArrays
です。1つは値が0の辞書で、もう1つは値が1の辞書です。
これを行う最善の方法は何ですか?
私は を持ってNSArray
いNSDictionaries
ます。各辞書には、BOOL 値のキーがあります。
その配列を並べ替える必要があり、結果は 2 になるはずNSArrays
です。1つは値が0の辞書で、もう1つは値が1の辞書です。
これを行う最善の方法は何ですか?
これがあなたの言いたいことかどうかはわかりませんが:
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];
}
}
wherearray
は初期配列で、各 dict の BOOL 値は に格納され@"key"
ます。また、新しい辞書アクセス構文を使用します
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];