"变异发送到不可变对象"在数组内的字典中

时间:2016-05-01 20:58:59

标签: ios objective-c nsmutablearray nsdictionary nsmutabledictionary

我的NSMutableArray中有一个名为myMutableArray的值:

(
     {
     "name_user" = xxxxxx;
     "user_key" = "xxxxxxx";
     }

相信在这个数组中有一个字典(如上所示),让我们假设我想在这个数组中添加另一个字典以保持类似的结果:

 (
         {
         "name_user" = xxxxxx;
         "user_key" = "xxxxxxx";
         },
         {
         "name_user" = aaaaaa;
         "user_key" = "stack overflow";
         }

为此,我测试了以下代码:

[myMutableArray addObject:@[@{@"name_user":"stack overflow",@"user_key":@"aaaaaa"}]];

此代码的问题是我收到以下错误消息:

  

***由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:' - [__ NSCFArray   insertObject:atIndex:]:发送到不可变对象的变异方法'

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

仅仅因为你有一个可变类型的属性并不意味着它指向的实例是可变的,你告诉编译器它将在运行时但是你无法保证以不同的方式编写代码。

因此,您应该检查如何创建数组以使其可变,或者在尝试变异之前创建可变副本。

相关问题