我没有找到我遇到的问题的答案。我正在使用 NSFetchedResultsControllerDelegete 将我的表视图与我的数据连接起来。我正在使用 sectionNameKeyPath 设置检索数据,以便我可以在表视图中对项目进行分组。如果我在表视图的一部分中只有一个项目并将其删除,则会出现以下错误:
无效更新:节数无效。更新后表视图中包含的节数(1)必须等于更新前表视图中包含的节数(2),加上或减去插入或删除的节数(0插入,0删除)。
这是我删除前的屏幕:
这是我的视图代码:
import CoreData
class VehicleTableViewController: UITableViewController, NSFetchedResultsControllerDelegate {
var deleteItemIndexPath: IndexPath? = nil
lazy var dao: DAOUtilities = {
return DAOUtilities(context: GlobalVariables.getContext())
}()
lazy var fetchedResultsController: NSFetchedResultsController<Vehicles> = {
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Vehicles")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "activeFlag", ascending: false), NSSortDescriptor(key: "vehicleDesc", ascending: true)]
// Initialize Fetched Results Controller
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: GlobalVariables.getContext(), sectionNameKeyPath: "activeFlag", cacheName: nil)
// Configure Fetched Results Controller
fetchedResultsController.delegate = self
return fetchedResultsController as! NSFetchedResultsController<Vehicles>
}() …Run Code Online (Sandbox Code Playgroud)