私はテーブルビューからアイテムの削除をアニメーション化しようとしています。 CoreDataで取り出した結果コントローラを使用しています。私が抱えている問題は、行数が項目数とどのように一致しなければならないかについて例外が発生していることです。ここでフェッチ結果のコントローラで削除された行をアニメ化する
は、私が削除したときに私が取得エラーです:
理由:「無効な更新:セクション0の行の無効な数の更新(4)の後に、既存のセクションに含まれる行の数 (0が挿入され、0が削除された) の行の数をプラスまたはマイナスして、そのセクションに含まれる行の数と同じでなければなりません。 update(3) (0は動かされ、0は動かされた)。
そして、ここではコードです:
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
let context = appDelegate.persistentContainer.viewContext
if editingStyle == .delete {
// Delete the row from the data source
context.delete(fetchedResultsController.object(at: indexPath))
do {
try context.save()
// Animate deleted row
tableView.deleteRows(at: [indexPath], with: .fade)
} catch {
print("There was an error: \(error)")
}
}
}
ありがとうございました。
これは私が通常行うことですが、 'fetchedResultsController'ではフェッチされたオブジェクトのプロパティを更新できません。フェッチされた結果コントローラは、データソースの更新を処理することになっています(ただし、それはアニメーション化されません)。 – DavidVII
'NSFetchedResultsControllerDelegate'からテーブルビューのアニメーション化を試みましたか? ここには(Objective-Cの)例があります:https://developer.apple.com/documentation/coredata/nsfetchedresultscontrollerdelegate – Dule
私はそれを試していませんが、私はそれを打ち明けて見ます。私はかなり新しいので、私はそれを迅速に変換することができるかどうかを見なければならない。 – DavidVII