通知另一个视图

时间:2014-02-22 16:21:37

标签: objective-c ios7 notifications xcode5

我试着想一个人却没有成功。     任何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中没问题,我可以将一个对象存储到我的数组中。 在第二个视图中,我收到了上面的内容

1 个答案:

答案 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]];