У меня есть NSMutableArray, сохраненный с NSUserDefaults. Этот массив - это мои "любимые" элементы, которые пользователь может сохранить, поэтому, когда я хочу добавить один элемент, мне нужно прочитать массив (из NSuserDefault) и сохранить в первой свободной позиции.
Я использую этот метод для добавления значения в NSMutableArray
-(IBAction)save{
NSMutableArray *abc = [[NSUserDefaults standardUserDefaults] objectForKey:@"12345"];
int n = [abc count];
[abc insertObject:@"aaa" atIndex:n];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] setObject:abc forKey:@"12345"];
[defaults synchronize];
[abc release];
}
какая сделка? Это, если пользователь вызывает этот метод два раза, второй раз приложение сбой в этом журнале:
* Завершение приложения из-за неперехваченного исключения "NSInternalInconsistencyException", причина: '- [__ NSCFArray insertObject: atIndex:]: метод мутирования, отправленный в неизменяемый объект
почему? и почему только второй раз? В первый раз отлично работает!