私は晴れた例から取られたNSFetchedResultsControllerを持っています。それはうまく動作し、データベースからデータを正しくフェッチしますが、アプリケーションを終了してデータベースからレコードを削除しても、アプリケーションには引き続き表示され、アプリケーションを再インストールしなければ消滅させる方法はありません。これを引き起こす原因は誰にも分かりますか?私はキャッシュセットを持っていない、私は1つを設定し、起動時にそれを削除しようとしましたが、それは働いていません。 fetchedResultControllerのコードは次のとおりです。あなたは、私は間違いなくそれはNSFetchedResultsController
のキャッシュに接続されていないことを伝えることができますを示してコンフィグから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を渡そうとしましたが、違いはありませんでした。 –