我在理解这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
,但没有办法接收这些返回。而且,这应该可以神奇地工作吗?对于这个比较的东西,文档很差。