重置存储时核心数据崩溃:'无法从此NSManagedObjectContext的协调器访问对象的持久存储'

nic*_*389 2 core-data nsmanagedobject nsmanagedobjectcontext ios swift

尝试在我用swift编写的iOS应用程序中删除Core数据的持久存储时,我遇到了崩溃.流程是直截了当的:当我从应用程序注销时,我删除了商店:

destroyPersistentStoreAtURL

我在应用程序中使用本机核心数据实现,并且使用performBlock/performBlockAndWait在托管对象中进行每次访问.此外,这些操作位于NSOperation队列中.流程如下:

  1. 登出
  2. cancelAllOperations&waitUntilAllOperationsAreFinished在执行performBlocks的队列上
  3. performBlocks队列中的maxConcurrentOperationCount = 1
  4. 最后,我添加了一个操作,它破坏了之前NSOperationQueue中的持久存储

有时,我遇到了崩溃,我无法理解为什么.从我看到的,它是与managedObjectsIDs和retain相关的东西.看一看:

destroyPersistentStoreAtURL
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢!

Shm*_*idt 6

您需要重置managedObjectContext此操作之前使用的内容.

呼叫 managedObjectContext.reset()