У меня есть 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:]: метод мутации отправлен в неизменяемый объект'
почему?
а почему только второй раз?
Первый раз отлично работает!