gpt4 book ai didi

ios - 核心数据 - 删除持久存储时出现死锁

转载 作者:可可西里 更新时间:2023-11-01 03:56:12 24 4
gpt4 key购买 nike

有没有一种安全的方法可以在应用程序中删除持久存储(并创建一个新存储),而其他线程正在使用与要删除的存储关联的 NSManagedObjectContext?我曾尝试锁定 NSPersistentStoreCoordinator 并在操作结束后将其解锁,但它没有帮助 - 我的所有尝试都导致了死锁。它总是发生在这一行(在主线程上执行):

[self.persistentStoreCoordinator removePersistentStore: store error: &error];

最佳答案

我没试过这个,但是来自 docs on moc setPersistentStoreCoordinator: ...

The coordinator provides the managed object model and handles persistency. Note that multiple contexts can share a coordinator.

This method raises an exception if coordinator is nil. If you want to “disconnect" a context from its persistent store coordinator, you should simply set all strong references to the context to nil and allow it to be deallocated normally.

这表明删除 psc 的安全方法是首先让每个带有 moc 的线程释放它(在 ARC 中对它的 nil-out 引用),然后执行 removePersistentStore:

关于ios - 核心数据 - 删除持久存储时出现死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14416770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com