我在ViewController
的NSMutableArray
是像这样定义我UITableView
数据源:的NSMutableArray removeAllObjects导致崩溃
NSMutableArray *messageArray;
我必须重新加载的tableView数据的方法,之前它,我想清除现有的表格数据。
如果我使用下面的代码:
[messageArray removeAllObjects];
[self.tableView reloadData];
我得到以下异常:
2013-02-12 14:20:30.378 appname[20998:907] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object' * First throw call stack: (0x3939e3e7 0x35dd6963 0x3939e307 0x393200e7 0x392eb5e5 0x7cda3 0x3a236047 0x3a2360d1 0x3a236047 0x3a235ffb 0x3a235fd5 0x3a23588b 0x3a235d79 0x3a15e5c9 0x3a14b8b1 0x3a14b1bf 0x336305f7 0x33630227 0x393733e7 0x3937338b 0x3937220f 0x392e523d 0x392e50c9 0x3362f33b 0x3a19f291 0x79c11 0x39be4b20) libc++abi.dylib: terminate called throwing an exception
但是,如果使用下面的代码,它的工作原理。
NSMutableArray *emptyArray = [NSMutableArray new];
messageArray = emptyArray;
[self.tableView reloadData];
为什么我得到一个错误? 这可能是罪魁祸首吗?
NSMutableDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:nil];
messageArray = responseDictionary[@"data"];
这是相关的? http://stackoverflow.com/questions/5707360/why-am-i-getting-mutating-method-sent-to-immutable-object-when-trying-remove – trojanfoe 2013-02-12 14:27:33
你在哪里分配messageArray?你在哪里填充它(即,当你移除所有的对象时,它里面有什么对象)? – thegrinner 2013-02-12 14:27:50