當使用deleteRowsAtIndexPaths刪除表格單元格時,如果嘗試使用滑動手勢刪除單元格以進入編輯模式,然後點擊刪除,則會發生崩潰。如果我通過切換編輯/完成按鈕進入編輯模式,然後刪除單元格,表格將正常更新而不會出現問題。刪除表格單元導致崩潰
我也試過使用[table beginUpdates]
& [table endUpdates]
也沒有成功。 也[table reloadData]
在這兩種情況下都可以工作 也正如你所看到的,我已經嘗試[table reloadSections:[NSIndexSet indexSetWithIndex: indexPath.section] withRowAnimation: UITableViewRowAnimationFade];
與編輯/完成按鈕進入編輯模式時相同的崩潰。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
NSMutableArray *temp = nil;
switch (indexPath.section)
{
case 0:
{
temp = self.entireSavedArray;
break;
}
case 1:
{
temp = self.entireSavedArray2014;
break;
}
case 2:
{
temp = self.entireSavedArray2013;
break;
}
case 3:
{
temp = self.entireSavedArray2012;
break;
}
case 4:
{
temp = self.entireSavedArray2011;
break;
}
case 5:
{
temp = self.entireSavedArray2010;
break;
}
default:
break;
}
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[temp removeObjectAtIndex: ((int)indexPath.row * 11)];
[self.table deleteRowsAtIndexPaths: [NSArray arrayWithObjects: indexPath, nil] withRowAnimation: UITableViewRowAnimationFade];
//[tableView reloadSections:[NSIndexSet indexSetWithIndex: indexPath.section] withRowAnimation: UITableViewRowAnimationFade];
}
}
後完整的錯誤消息。 – rmaddy
如果可以製作代碼的正面或反面,這將有所幫助。評論將是有用的。 –
用戶輕掃刪除表格中的單個行。然後從數據源數組中刪除11個對象。然後您告訴表格刪除1行。這並沒有加起來。你的'numberOfRowsInSection:'方法很可能有不匹配。 – rmaddy