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

我为此使用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];
}
//...

10-01 17:39