1
我的NSDictionaryNSDictionary按數組值排序?
NSDictionary *sort = @{@"key1": @[@"one", @"two"],
@"key2": @[@"o", @"t", @"p"]};
,我想通過array.count分揀他。 雖然決定使用排序泡泡,然後添加元素std :: map,因爲他下令。 但也許有一些標準的解決方案?
我的NSDictionaryNSDictionary按數組值排序?
NSDictionary *sort = @{@"key1": @[@"one", @"two"],
@"key2": @[@"o", @"t", @"p"]};
,我想通過array.count分揀他。 雖然決定使用排序泡泡,然後添加元素std :: map,因爲他下令。 但也許有一些標準的解決方案?
我不認爲你可以在字典中的鍵進行排序,但是如果你想要的按鍵陣列,以便基於其數值數組的數量,你可以做這樣的事情:
NSArray *sortedKeysArray = [dictionary keysSortedByValueUsingComparator: ^(NSArray *obj1, NSArray *obj2) {
if (obj1.count > obj2.count) {
return (NSComparisonResult)NSOrderedDescending;
}
if (obj1.count < obj2.count) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
然後,一旦你有鑰匙,你可以像這樣迭代它們:
for (NSString *key in sortedKeysArray) {
NSArray *array = [dictionary objectForKey:key]
// Do something now that you have the arrays in order from smallest to largest
}
它的偉大工作!謝謝! – nickheck
奇怪的是,NSOrderedDescending工作正常,但NSOrderedAscending,排序不正確。 – nickheck
究竟發生了什麼? – RDSpinz