我正在尝试创建从 TableView 中删除行的功能,这就是我的做法。错误来自
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath] withRowAnimation:UITableViewRowAnimationFade];
任何帮助将不胜感激。谢谢!
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[self.homeworkArray removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
[self.tableView reloadData];
}
最佳答案
arrayWithObjects:
方法需要 nil
终止列表,所以你需要说 -
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationFade];
}
或者更简单,使用
arrayWithObject:
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
或者正如@rmaddy 指出的那样,使用数组文字语法 -
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
此外,您不需要
reloadData
调用 - deleteRowsAtIndexPaths
将负责更新 TableView 中的相关行。
关于ios - 线程 1 :EXC_BAD_ACCESS (code=1, 地址=0x14),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923109/