我有一个 UITableViewController,标题中有一个 NSMutableArray,如下所示:
NSMutableArray *someArray;
我还声明了该属性:
@property (nonatomic, retain) NSMutableArray *someArray;
在 .m 文件中,我在方法中加载数组:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
someArray = [[NSMutableArray alloc] init];
[self loadArrayData];
[tableview reloadData];
}
表格填充得很好,添加没有问题,但是当我尝试删除一行时,应用程序在以下行崩溃:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[someArray removeObjectAtIndex:indexPath.row];
//update table etc..
如果我使用调试器,我可以看到数组有一些对象,当我记录indexPath.row时,我得到一个在数组大小内的值。
我不明白为什么它会在这条线上崩溃...谁可以帮助我?
控制台输出:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSArrayI removeObjectAtIndex:]:无法识别的选择器发送到实例 0x6193890”
最佳答案
我遇到了一个非常相似的问题,我正在使用 CoreData 启动我的数组,如下所示:
self.allContacts = (NSMutableArray*)[cdc.managedObjectContext executeFetchRequest:fetchRequest error:&error];
尝试将 CoreDataController 获取请求的结果转换为 NSMutableArray。
结果我需要在获取请求结束时调用“mutableCopy”函数。
self.allContacts = (NSMutableArray*)[[cdc.managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];
我认为不需要强制转换为 (MutableArray *),但我有它以防万一。
希望这有帮助。
关于iphone - NSMutableArray removeObjectAtIndex :indexPath. 行崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5237668/