Как избежать "NSInternalInconsistencyException" в iPhone? - PullRequest
0 голосов
/ 20 февраля 2010

Я сортирую изменяемый массив. Для сортировки я использую:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"pubDate" ascending:NO]; 
[recent sortUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];  
recent1 = [recent sortedArrayUsingDescriptors:descriptor];
[descriptor release];

Я получаю эту ошибку:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object'

Линия

recent1 = [recent sortedArrayUsingDescriptors:descriptor];

показывать предупреждения

  • «передача аргумента 1« отсортированных или использующих дескрипторы »из отдельного целевого типа c» и
  • «присвоение из отдельной цели типа c»

В моем коде оба recent и recent1 являются NSMutable массивами. Куда мне пойти не так?

1 Ответ

1 голос
/ 20 февраля 2010
recent1 = [recent sortedArrayUsingDescriptors:descriptor];

должно быть:

recent1 = [recent sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];

Хотя я понятия не имею, почему вы захотите отсортировать массив, который вы уже отсортировали, с такими же дескрипторами сортировки в строке прямо выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...