У меня возникли проблемы с сохранением NSMutableDictionary. Я пытаюсь сохранить его в NSUserDefaults, затем загрузите и измените синий цвет, а затем сохраните его снова.Установленное значение NSMutableDictionary?
Так что я сначала сделать это так:
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithObjectsAndKeys:
firstNameLbl, @"firstName",
lastNameLbl, @"lastName",
nil];
[[NSUserDefaults standardUserDefaults] setObject:d forKey:@"youDict"];
[[NSUserDefaults standardUserDefaults] synchronize];
Тогда я загрузить его и попытаться изменить значение, как это:
NSMutableDictionary *d = [[NSUserDefaults standardUserDefaults] objectForKey:@"youDict"];
[d setObject:textField.text forKey:key];
[[NSUserDefaults standardUserDefaults] setObject:d forKey:@"youDict"];
[[NSUserDefaults standardUserDefaults] synchronize];
Однако эта линия, [d setObject:textField.text forKey:key];
, вызывает приложение аварии, и я получаю эту ошибку:
'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
Надеюсь, вы можете помочь мне исправить это, спасибо.
кажется, что вы не можете сделать в этом случае, безусловно, NSUserDefaults возвращает неизменный __NSCFDictionary, поэтому может быть проблема при вызове '[d SetObject: textField.text forKey: ключ];'. – Mat