我正在创建一个警报应用程序。在主屏幕tableview
向左滑动时,必须删除该行。我正在使用以下代码。但应用程序崩溃时抛出异常错误。
-(void)tableView:(UITableView *)tableView commitEditingStyle:
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
[self.loadRemainderArray removeObjectAtIndex:indexPath.row];
}
}
我得到的错误是:因未捕获的异常“NSRangeException
”而终止应用,原因是:-[NSMutableArray removeObjectAtIndex:]: index 0 beyond bounds for empty array
答案 0 :(得分:1)
原因是你得到的错误是因为你的数组是空的。它可能是空的原因是:
您没有初始化数组:
self.loadRemainderArray = [[NSMutableArray alloc]init]
您从未在数组中添加对象:
[self.loadRemainderArray addObject:yourObject];
答案 1 :(得分:1)
您尝试从中移除对象的数组为空或未初始化。您应该按如下方式保护您的代码:
if (indexPath.row < [self.loadRemainderArray count])
[self.loadRemainderArray removeObjectAtIndex:indexPath.row];
这并不能解决您的问题 - 您需要找到根本原因来理解数组为空或为零的原因
答案 2 :(得分:0)
此行会导致您的崩溃。[self.loadRemainderArray removeObjectAtIndex:indexPath.row];
。因为您尝试从空数组中删除对象。只需编写此代码即可。
if (self.loadRemainderArray.count > indexPath.row)
[self.loadRemainderArray removeObjectAtIndex:indexPath.row];
我想,你在其他地方做错了,所以这个方法中的数组是空的。在代码中查看loadRemainderArray
访问权限。
答案 3 :(得分:0)
出现此异常可能有以下两种原因。
你忘记了[NSMutableArray alloc] init]你的数组。并且没有初始化添加的对象。 self.loadRemainderArray = [NSMutableArray alloc] init];
您尚未向此阵列添加任何对象。