У меня есть база CoreData, которую я использую в своем TableView.Как перезагрузить TableView в другом представлении?
Когда я пытаюсь очистить базу в другом представлении, у меня есть сообщение в моем журнале консоли.
CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:.
Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (0) must be equal to the number of rows contained in that section before the update (3), plus or minus the number of rows inserted or deleted from that section (0 inserted, 0 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out). with userInfo (null)
для удаления CoreData массива Я использовал этот код
self.historyArray.removeAll()
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "History")
fetchRequest.returnsObjectsAsFaults = false
do {
let results = try managedContext.executeFetchRequest(fetchRequest)
for managedObject in results
{
let managedObjectData:NSManagedObject = managedObject as! NSManagedObject
managedContext.deleteObject(managedObjectData)
}
} catch {
print("Detele all data")
}
Я знаю, что нужно перезагрузить TableView, но как я могу сделать это в другом View? плохо пробовал это, но этот код не работает.
var tableViewHistoryClass = HistoryView()
self.tableViewHistoryClass.tableView.reloadData()
Пожалуйста, помогите мне исправить это сообщение.
Вам не нужны либо уведомление или делегаты. Ваш NSFetchedResultsController уже наблюдает за удалениями и сбоями, потому что они не обрабатываются правильно. Вам просто нужно настроить свои методы делегирования для удаления строк из таблицы при удалении каждого объекта или перезагрузки представления таблицы. – pbasdf