ios - "mutating sent to immutable object"在数组内的字典中

标签 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"}]];

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

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'

我该如何解决这个问题?

最佳答案

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

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

关于ios - "mutating sent to immutable object"在数组内的字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971877/

相关文章:

ios - 从多个 View Controller 调用文件下载功能;如何将结果返回给那些 VC?

ios - TestFlight 提供反馈按钮

ios - iOS框架中的重复符号

ios - 被 NSMutableArray sortUsingDescriptors : exception 搞糊涂了

cocoa - NSMutableArray arrayWithObjects : 的问题

ios - 在继承的类中覆盖 NSLayoutConstraint

ios - 从 Block 获取 WebService 响应到 WatchKit App

iOS - UIViewController 作为具有动态高度的弹出窗口

objective-c - NSLog 在设备上被忽略

ios - 向声明为 NSMutableArray 的 IBOutletCollection 添加更多对象会导致异常