我在 for 循环中将对象添加到 NSMutableArray 时遇到了一些麻烦。当我尝试它时,我收到一个错误:
*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object” Blockquote
我已经查看了与此非常相似的其他问题,并且由于数组是不可变的或者他们正在读取 NSUserDefaults,所以它们得到了解决,但是我没有做这些事情。
我下载了一些 JSON 并使用 NSJSONSelialization 解析它,我的想法是我有一个几乎类似于 twitter 的活动流从 UITableView 的顶部传下来。这是我的代码:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
if (isDownloadingFirstTime){
isDownloadingFirstTime = NO;
dataArray = [Methods parseJSONDataWithData:data];
[mainTableView reloadData];
} else{
[refreshControl endRefreshing];
NSArray *tempArray = [Methods parseJSONDataWithData:data];
for (int num = 0; num < tempArray.count; num++){
[dataArray addObject:[tempArray objectAtIndex:num]];
NSArray *indexPathArray = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]];
[mainTableView beginUpdates];
[mainTableView insertRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationTop];
[mainTableView endUpdates];
}
}
data = [NSMutableData data];
}
当我尝试添加对象时,我在 for 循环的第一行得到了异常:
我绝不会在此类中使用 NSUserDefaults,并且我 100% 确定 dataArray 是 NSMutableArray。
任何帮助或建议表示赞赏!