我试着想一个人却没有成功。 任何id
// MasterViewController
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:myParametersArray forKey:@"myParametersArray"]; // add 'string' as object with key name is also 'myArrayKey'
[userDefaults synchronize];
// Another View.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
myParametersArray = [defaults objectForKey:@"myParametersArray"];
myParametersArray[STR_OPTION_PSEUDO] = [NSNumber numberWithInteger:_RetainPseudoSwitch.enabled];
info myParametersArray是NSMutableArray
原因:' - [__ NSCFArray insertObject:atIndex:]:发送到不可变对象的mutating方法'
在MasterViewController中没问题,我可以将一个对象存储到我的数组中。 在第二个视图中,我收到了上面的内容
答案 0 :(得分:0)
我不明白为什么你用这种方式发布通知,但我会尽力帮助你。
此行将NSArray对象分配给myParametersArray变量,并将其类型更改为NSArray。你不能改变NSArray对象。
myParametersArray = [defaults objectForKey:@"myParametersArray"];
替换为:
myParametersArray = [NSMutableArray arrayWithArray:[defaults objectForKey:@"myParametersArray"]];
此外,您应该像这样设置数组对象:
[myParametersArray setObject:[NSNumber numberWithInteger:_RetainPseudoSwitch.enabled] atIndex:[STR_OPTION_PSEUDO]];