我是Objective-C的新手。所以我在一节(5个单元格)中有一个包含5行的表格视图,我希望允许用户删除它们,但是当我点击删除按钮时应用程序会一直崩溃。它崩溃的原因是因为我在该部分中有5行而不是返回[self.myListItems count]如何在保留该部分中的5行的同时更正下面的代码?
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[self.myListItems removeObjectAtIndex:indexPath.row];
[self saveList];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
错误是:断言失败 - [UITableView _endCellAnimationsWithContext:]
答案 0 :(得分:5)
在ViewDidLoad中:
self.tableView.allowsMultipleSelectionDuringEditing = NO;
和
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return YES if you want the specified item to be editable.
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
//add code here for when you hit delete
[self.myListItems removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[self saveList];
}
}
请记住 - 如果要删除作为节中最后一项的行,则需要删除整个节(否则可能会导致节数错误并抛出此异常)。
希望这有帮助。
答案 1 :(得分:0)
尝试使用这些:
StringBuilder outString = new StringBuilder(str);
for(int i = 0; i<outString.length(); i++){
if(Character.isUpperCase(outString.charAt(i))){
outString.deleteCharAt(i);
}
}
return outString.toString();
答案 2 :(得分:0)
更改以下行
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView beginUpdates]
[self.myListItems removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[tableView endUpdate];
[self saveList];
}