tableViewのrowの削除ができません
もともとUITableViewControllerを使って問題なく動いていたテーブル画面を、UIViewController + UITableViewを使って動くように書き換えています。(UITableViewControllerだといろいろな制限が多いので。)
概ねうまく動いているのですが、ただひとつ問題が起きてスタックしております。 スワイプしてセルを削除しようとするとクラッシュしてしまうのです。 解決方法ご教示いただけたらうれしいです。
エラー内容
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'Invalid update: invalid number of rows in section 1.
The number of rows contained in an existing section after the update (8)
must be equal to the number of rows contained in that section before the update (9),
plus or minus the number of rows inserted or deleted from that section (0 inserted, 0 deleted)
and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).'
*** First throw call stack:
ソースコード
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
//[Parse] 該当データのIDを取得
PFQuery *query = [PFQuery queryWithClassName:@"Item"];
//[Parse]favoriteData配列のなかから、行数をベースに、該当データをdictionaryとして取り出す
NSDictionary * deleteContent = [_favoriteData objectAtIndex:indexPath.row];
//[Parse]該当データのIDを取り出す
NSString *itemId = [deleteContent valueForKey:@"objectId"];
//[Local]favoriteデータ配列から該当データを削除
[_favoriteData removeObjectAtIndex:indexPath.row];
//[Local]テーブルビューからRowを削除
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
//[Parse]IDをベースにデータを削除する
[query getObjectInBackgroundWithId:itemId block:^(PFObject *deleteItem, NSError *error){
//[Parse]オブジェクトを削除
[deleteItem deleteInBackground];
}];
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}
よろしくお願いいたします。