1

AFNetworkOperation を使用して、基本的に離れたサーバーからデータを取得するニュース アプリケーションを構築しています (同期プロセスと進行状況を適切に管理するために、すべての操作は NSOperationQueue に入れられます)。

各 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 を適切に使用していない可能性があるため、アドバイスを歓迎します。

4

1 に答える 1