Сортировка с использованием NSSortedDescriptor не применяется к NSMutableArray - PullRequest
0 голосов
/ 07 ноября 2019

Приведенный ниже код находится внутри цикла, чтобы заполнить self.iconnumbers записями «iconNumberString». iconNumberString: это строка, но она содержит число. Это числа в текстовом формате в виде строки. Затем для каждой итерации после добавления этой записи в массив применяется сортировка с использованием дескрипторов.

      NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"intValue" ascending:YES];
              [self.iconNumbers sortedArrayUsingDescriptors:@[sortDescriptor]];

Так что после добавления каждого элемента должна применяться сортировка.

Когда это итерация номер 110, я пытаюсь отобразить содержимое всего массива, отсортированного, как показано ниже. Тем не менее, я получаю тот же массив не отсортирован.

Примечание: self.iconNumbers имеет тип NSMutableArray. Пожалуйста, дайте мне знать, как отсортировать self.iconNumbers.

код

     [self.iconNumbers addObject:iconNumberString];
        [self.iconNumbers sortedArrayUsingDescriptors:@[sortDescriptor]];
        NSLog(@"iconNumberString : %@", iconNumberString);
        NSLog(@"[self.iconNumbers lastObject]) : %@", [self.iconNumbers lastObject]);

        if (i++ == 110) {
            for(NSString *s in self.iconNumbers) {
                NSLog(@"[self.iconNumbers sorted]: %@", s);
            }
        }

1 Ответ

0 голосов
/ 08 ноября 2019

Если вы получаете ошибку непостоянного и неизменного, то вы должны написать mutablecopy следующим образом: *

array = [[array sortedArrayUsingSelector: @selector (localizedCaseInsensitiveCompare:)] mutableCopy ];

...