Сортировка NSMutableDictionary в порядке ASC - PullRequest
0 голосов
/ 11 июня 2019

В моем проекте XCode (Objective-C) я сохраняю результат json в NSMutableDictionary, но результат находится в неправильном направлении.

Как мне отсортировать NSMutableDictionary - это порядок ASC в Objective-C.

Вот мой NSMutableDictionary:

{
    3 =     (
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
    );
    2 =     (
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10
    );
    1 =     (
        0,
        1
    );
    4 =     (
        21,
        22,
        23,
        24,
        25,
        26
    );
}

Я ожидаю порядка сортировки 1,2,3,4 для UITableView Раздел.

1 Ответ

0 голосов
/ 12 июня 2019

@ rmaddy прав, следующий код реализации, очень простой.

- (NSMutableArray *)sortDictionary:(NSMutableDictionary *)dictionary {
    NSArray *sortedKeys = [[dictionary allKeys] sortedArrayUsingSelector:@selector(compare:)];
    NSMutableArray *sortedArray = [NSMutableArray arrayWithCapacity:sortedKeys.count];
    for (NSString *key in sortedKeys) {
        [sortedArray addObject:[dictionary objectForKey:key]];
    }
    return sortedArray;
}

пример

NSDictionary *dict = @{@"3":@{@"3333":@"3333"},
                       @"2":@{@"2222":@"2222"},
                       @"1":@{@"1111":@"1111"},
                       @"4":@{@"4444":@"444"}};

[self sortDictionary:dict];

результат:

sortedArray :(
        {
        1111 = 1111;
    },
        {
        2222 = 2222;
    },
        {
        3333 = 3333;
    },
        {
        4444 = 444;
    }
)
...