【问题标题】:"mutating sent to immutable object" In dictionary inside array“突变发送到不可变对象”在数组内的字典中
【发布时间】:2016-05-01 20:58:58
【问题描述】:

我的 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:]: 变异方法发送到不可变对象'

我该如何解决这个问题?

【问题讨论】:

  • 您的myMutableArray 实际上是在引用一个NSArray,而不是一个NSMutableArray。你在哪里创建这个数组?
  • @Paulw11,我使用将 json 文件转换为数组的代码创建了他...
  • Paulw11 并没有要求您在哪里创建代码的英文描述!他要求你发布代码!!
  • NSJSONReadingMutableContainers

标签: ios objective-c nsmutablearray nsdictionary nsmutabledictionary


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多