Я не могу понять, что вызывает это. По сути, несколько разных «задач» сталкиваются друг с другом в моем приложении. Когда я нажимаю кнопку, он запускает этот код просто отлично:
PalAppDelegate *dataCenter = (PalAppDelegate *)[[UIApplication sharedApplication] delegate];
[dataCenter.colourPalettesContainer addObject:[NSNumber numberWithInt:5]];
Он может делать это столько раз, сколько мне нравится. Но когда я выполняю другую задачу (и есть несколько, которые вызывают это), которая включает в себя этот код, например:
PalAppDelegate *dataCenter = (PalAppDelegate *)[[UIApplication sharedApplication] delegate];
[dataCenter.colourPalettesContainer removeObjectAtIndex:touchDownID];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:dataCenter.colourPalettesContainer forKey:@"container"];
[prefs synchronize];
и затем:
dataCenter.colourPalettesContainer = [prefs objectForKey:@"container"];
Когда я снова запускаю первый код после этого, это вызывает сбой с ошибкой «метод мутации отправлен в неизменяемый объект». Как я могу это остановить?
РЕДАКТИРОВАТЬ: Итак, я обнаружил проблему из некоторых ответов ниже. У кого-нибудь есть другой способ сделать это, который они предложили бы?