метод мутации отправляется в неизменяемый объект ошибки при использовании функций изменяемого массива - PullRequest
0 голосов
/ 29 февраля 2012

Мое приложение всегда выдает «метод мутации, отправленный неизменяемому объекту» Мой словарь и массив уже объявлены изменяемыми, но, похоже, это не помогает Я пробовал функцию replaceObjectAtIndex, она также не работала.

NSString* plistpath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
NSMutableDictionary* dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:plistpath];
NSMutableArray* Array1 = [dictionary objectForKey:@"Array1"];
[Array1 removeObjectAtIndex:num];
[Array1 insertObject:@"1" atIndex:num];
return Array1;

спасибо

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Попробуйте:

NSArray *array = [dictionary objectForKey:@"Array1"]; // Immutable
NSMutableArray * Array1 = [NSMutableArray arrayWithArray:array]; // Mutable
// ...

Или, как заметил Жюльен:

NSArray *array = [dictionary objectForKey:@"Array1"]; // Immutable
NSMutableArray * Array1 = [array mutableCopy]; // Mutable
0 голосов
/ 29 февраля 2012

Если правая часть не возвращает NSMutableArray (вместо этого NSArray), вы пытаетесь изменить изменяемый объект.

NSMutableArray * Array1 = [словарь objectForKey: @ "Array1"]; // NSArray

...