tableView
ビューコントローラーが表示されたときに動的に生成される複数のセクションがあるため、から行を削除する際に問題が発生します。そのため、カウントを返すと、次のnumberOfRowsInSection
ようになります。
NSInteger count = [[_sectionsArray objectAtIndex:section] count];
return count;
削除すると、次のような同じタイプの配列が生成されます。
NSMutableArray *contentsOfSection = [[_sectionsArray objectAtIndex:[indexPath section]] mutableCopy];
[contentsOfSection removeObjectAtIndex:[indexPath row]];
ご覧のとおり、にリンクされていない配列からオブジェクトを削除しているtableView
ため、単にNSInternalInconsistencyException
誰でもこれで私を助けることができますか?
アップデート:
[contentsOfSection removeObjectAtIndex:[pathToCell row]];
if ([contentsOfSection count] != 0) {
// THIS DOESN'T
[self.tableView deleteRowsAtIndexPaths:@[pathToCell] withRowAnimation:UITableViewRowAnimationFade];
}
else {
// THIS WORKS!
[_sectionsArray removeObjectAtIndex:[pathToCell section]];
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:[pathToCell section]] withRowAnimation:UITableViewRowAnimationFade];
}