我有一個NSFetchedResultsController是從一個天藍色的例子。它運行良好並能正確地從數據庫中提取數據,但是如果我退出應用程序並從數據庫中刪除記錄,它們仍會顯示在我的應用程序中,並且無法在不重新安裝應用程序的情況下讓它們消失。有沒有人有任何想法可能會導致這種情況?我沒有一個緩存集,並且我嘗試了在啓動時設置一個並刪除它,但它沒有奏效。這是fetchedResultController的代碼。NSFetchedResultController緩存的結果不會消失
lazy var fetchedResultController: NSFetchedResultsController<NSFetchRequestResult> = {
let fetchRequest:NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "Events")
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext!
fetchRequest.predicate = NSPredicate(format: "completed != true")
//fetchRequest.predicate = NSPredicate(format: "text != ''")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "createdAt", ascending: true)]
let resultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
resultsController.delegate = self;
return resultsController
}()
但是記錄絕對存儲在設備上,因爲我仍然可以訪問我以前看過的記錄,當啓動沒有互聯網連接的應用時。我也試過將nil傳遞給刪除緩存的函數,但沒有任何區別。 –