2013-05-05 17 views
0

我有一個CoreData應用程序,其中有兩個用於併發的NSNanagedContext:s。一個用於主線程,另一個用於我的後臺線程。CoreData併發 - 我需要一個單獨的NSOperationQueue嗎?

我認爲控制器中的一個我也有一個獨立的NSOperationQueue,我使用這樣的:

[self.queue addOperationWithBlock:^{ 
    [self processDataFromDictionary:jsonObject]; 
    [...] 

我發現我的NSNanagedContext也有一個執行塊方法。如果我改爲寫:

[self.backgroundContext performBlock:^{ 
    [self processDataFromDictionary:jsonObject]; 

這是否也會異步執行?

回答

1

如果您的託管對象上下文是使用合適的concurrency type創建的,則從任何其他隊列調用performBlock將導致該塊在上下文自己的隊列上異步執行。

+0

好的,謝謝!那麼需要另一個隊列才能異步完成呢? – Anders 2013-05-06 16:09:51

+0

就是這樣的。 [這是一個體面的教程](http://volonbolon.net/post/26899408713/concurrency-with-core-data-on-ios-5),您可以使用iOS 5中添加的併發API來採用這些模式。 – rickster 2013-05-07 03:29:19

相關問題