2

私はNSFetchedResultsControllerでUITableViewを使用しています。NSFetchedResultsControllerDelegate のすべてのメソッドは、Apple のドキュメントと同様に実装されています。しかし、データベースからすべてのセクションの行を削除した後、「無効な更新」例外が発生します。

デリゲートは、このアクションを次の順序で処理します。

  • 最初にcontroller:didChangeSection:メソッドを実行し、空になったセクションを削除します。
  • 次に、すでに削除されたセクションから行を削除しようとするcontroller:didChangeObject:メソッドを実行します。例外が発生します。

何が間違っていて、この状況をどのように処理するのですか? ありがとうございました。

4

1 に答える 1

1

私も同じ問題を抱えていました。ただし、次を追加してすべての変更を「グループ化」する場合:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
    [self.tableView beginUpdates];
}


- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    [self.tableView endUpdates];
}

それはうまくいくはずです。

于 2012-09-07T11:27:46.723 に答える