このことの背後にあるロジックを理解するのに苦労していcompare-using-selector
ます。
次のコードがあります。キーを抽出して同時に並べ替えようとしています。しかし、それはソートされません。出力 NSArray の順序は、何をしても変わりません。
NSMutableDictionary *dictToSort = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Joe", [NSNumber numberWithInt:2], @"mark", [NSNumber numberWithInt:1], @"mdark", [NSNumber numberWithInt:3], nil];
NSArray *dictToSortKeys = [dictToSort keysSortedByValueUsingSelector:@selector(compare:)];
NSLog(@"Not Sorted" );
NSNumber *xx = dictToSortKeys[0];
NSNumber *xy = dictToSortKeys[1];
NSNumber *xz = dictToSortKeys[2];
NSLog(@"Sorted %d %d %d", xx.integerValue , xy.integerValue, xz.integerValue);
compare:
この機能の仕組みがわかりません。返品と書いてありますがNSOrderedAscending, NSOrderedSame or NSOrderedDescending
、これらの返品を受け取る方法はありません。また、これは魔法のように機能するはずですか?この比較のドキュメントは非常に貧弱です。