我正在使用核心數據的iPhone應用程序。該應用程序調用Web服務,解析生成的XML文件,然後在我的應用程序中創建或修改Core Data對象。我已經異步處理Web服務調用和解析,但是我已經將解析的數據移回主線程來操作Core Data對象。我想在後臺線程中運行此過程。 (1-2秒的暫停並沒有爲一個偉大的用戶體驗)NSPersistentStoreCoordinator線程安全嗎?
最明顯的方法是創建一個特定的管理對象上下文後臺線程,但後來我讀到這在Apple's Core Data Programming Guide:
持久性商店協調員向其託管對象上下文提供一個虛擬商店的外觀。對於完全併發的操作,每個線程都需要一個不同的協調器。
所以這裏有一個問題:你不能有兩個NSPersistentStoreCoordinator
提供訪問同一商店。但是,Marcus Zarra的核心數據手冊斷言NSPersistentStoreCoordinator
是線程安全並將串行化I/O請求(第157頁)。
有人可以幫我解決這個問題嗎?是否有可能在單獨的線程上運行第二個託管對象上下文,該線程與主線程共享相同的NSPersistentStoreCoordinator
?或者,更簡潔地說,是NSPersistentStoreCoordinator
線程安全的?
僅供參考您可以讓多個PSC打開同一個存儲文件。 – 2014-02-22 01:29:53