ios - 应用程序崩溃 : Mutating method sent to immutable object

标签 ios objective-c json cocoa-touch nsmutablearray

我正在尝试将对象添加到 NSMutableArray。最初我将一些响应数据分配给数组,并可以在 TableView 中显示它。加载更多数据后,尝试将新信息添加到我的原始数组时似乎崩溃了。

我为此使用 AFNetworking:

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

    if(!_myArray){
        _myArray = [responseObject objectForKey:@"data"];
    }
    else{
        [_myArray addObject:[responseObject objectForKey:@"data"]];
    }
    [self.tableView reloadData];
}

我得到的错误如下

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

有人可以帮忙吗?

最佳答案

您从 responseObject 字典中检索的对象很可能不是 NSMutableArray,而是(不可变的)NSArray。您必须创建一个可变副本才能更改它:

//...
if (!_myArray) {
    _myArray = [[responseObject objectForKey:@"data"] mutableCopy];
}
//...

关于ios - 应用程序崩溃 : Mutating method sent to immutable object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22883388/

相关文章:

iOS 移动构建调试与发布

ios - 带自动换行的多行标签

java - 在 Jackson 中反序列化 JSON,其中键是值

ios - 如何快速使 SWRevealViewController 成为另一个 Controller 的子级

iOS位置感知编程

ios - 模糊 ICarousel 中的图像

ios - 如何摆脱特定的 TableView 单元格

objective-c - Encoding ™ £ 用于 JSON - 使用 objective-c

javascript - 将数据从 Jquery 发送到 Controller 。 MVC C#

java - Json 到具有 Class<?> 成员变量的 Java 对象