字典 {A=3, B=2, C=4} 需按值升序輸出 {B=2, A=3, C=4}。字典本身無序,需轉為數組排序。
NSMutableDictionary *dict = [@{@"A": @3, @"B": @2, @"C": @4} mutableCopy];
// 1. 獲取所有鍵,按對應值排序
NSArray *sortedKeys = [dict keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSNumber *v1 = (NSNumber *)obj1;
NSNumber *v2 = (NSNumber *)obj2;
return [v1 compare:v2]; // 升序
}];
// 2. 按排序後的鍵輸出
for (NSString *key in sortedKeys) {
NSLog(@"%@ = %@", key, dict[key]);
}
// 輸出: B = 2, A = 3, C = 4
return [v2 compare:v1]; // 交換參數順序
標準 NSDictionary 無序,若需保持順序可用 NSArray 存儲 (key, value) 元組,或使用第三方有序字典庫。