我正在尝试使用 UITableViewDiffableDataSource 实现我现有的 coredata 项目。我的 tableview 是使用 NSFetchedResultsController 和相应的委托方法耦合的。我可以使用 diffabledatasource 列出 tableview 中的数据。我的数据源使用以下泛型类型声明
UITableViewDiffableDataSource<String, NSManagedObjectID>
为了在表格视图中启用编辑模式,我对 UITableViewDiffableDataSource 进行了子类化。我可以从表格视图中删除单元格,但不能从我的 coreData 中删除。删除单元格的代码如下
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
if let identifierToDelete = itemIdentifier(for: indexPath){
var snapshot = self.snapshot()
snapshot.deleteItems([identifierToDelete])
apply(snapshot)
}
}}
当我删除单元格时,不会调用下面的 NSFetchedResultsControllerDelegate 方法。
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChangeContentWith snapshot: NSDiffableDataSourceSnapshotReference)
我不确定这是否是将 diffabledatasource 与 NSFetchedResultscontroller 耦合的正确方法。任何帮助将不胜感激。提前致谢