2013-05-21 41 views
1

我正在構建一個新聞應用程序,它基本上使用AFNetworkOperation從遠處的服務器獲取數據(所有操作都放在NSOperationQueue中以正確管理同步過程和進度)。MagicalRecord:如何執行後臺保存

每個AFNetworkOperation的每個完成塊創建/刪除/更新核心數據實體。

在同步過程中的整個結束,爲了讓所有的變化執着,我執行完全保存我的保存操作時的代碼

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0); 

    dispatch_async(queue, ^{ 
     NSLog(@"saveInBackground : starting..."); 

     [[NSManagedObjectContext defaultContext] saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) { 
       NSLog(@"saveInBackground : finished!"); 
     }]; 
    }); 

不幸的是它總是塊主線程以下行。

我可能不會正確使用MagicalRecord,因此任何建議都會受到歡迎。

回答

0

在深入挖掘MagicalRecord之後,似乎我的代碼運行良好,並且根本不會阻塞主線程。

我的問題不在MagicalRecord上,但是我應該在完成網絡操作的塊上使用它。

我會開始一個新的討論,提供它的全部細節。