是否有一种安全的方式来删除应用程序中的持久性存储(并创建一个新的),其中的其他线程正在使用与要删除的存储关联的NSManagedObjectContext?我试图锁定NSPersistentStoreCoordinator并在操作结束后将其解锁,但这并没有帮助 - 我所有的尝试都导致了死锁。它总是发生在这条线(主线程上执行):核心数据 - 移除持久性存储时发生死锁
[self.persistentStoreCoordinator removePersistentStore: store error: &error];
你可以发布相关线程的堆栈跟踪图像吗? –
你在使用线程限制或队列限制吗?你正在使用父子上下文吗? – quellish
你首先应该确定**你为什么要这么做,然后看看你是否可以想出另一种解决方案。在大多数情况下,你最好先拆除整个堆栈,并确保托管对象的任何东西都听取有关堆栈消失的通知,以便释放它们的引用。你所要做的就像把摩天大楼的一楼扯下来,并期待一切都保持原样。 –