2016-06-21 76 views
1

我有兩個數據庫文件,我可以很容易地將核心數據從一個上下文複製到另一個 - 如果我把兩個上下文都放在主線程中(NSMainQueueConcurrencyType)。
但是,如果我希望它在後臺線程中異步發生,那麼每個數據庫文件的上下文都是NSPrivateQueueConcurrencyType?請記住:兩個上下文都有不同的持久性商店協調員!
(PS:由於NSConfinementConcurrencyType在iOS版9提倡使用的約束類型是出了問題對我來說)。核心數據從一個數據庫複製到另一個數據庫在後臺線程

+0

您是在複製商店中的所有商品,還是隻是一個子集? – pbasdf

+0

@pbasdf:只有一個子集。 – Jan

+1

您可以使用單個上下文和PSC(合併兩個模型,如果它們不同),添加兩個存儲(如果需要,使用配置),然後使用'affectedStores'從一個和'allocateObject:toPersistentStore:'插入另一個。只是一個想法;從來沒有嘗試過。 – pbasdf

回答

1

你可以使用一個單一的環境和PSC(合併兩個模型,如果它們是不同的)。添加這兩個商店(如果需要,使用配置),然後使用affectedStores從一個提取並且allocateObject:toPersistentStore:插入另一個。如果一個商店以只讀方式打開,那麼您將不需要使用allocateObject:,Core-Data將推斷使用的正確商店。

相關問題