4

私は MKNetworkKit を初めて使用し、設計に少し問題があります。MKNetworkOperation によってフェッチされたデータをバックグラウンド スレッドで処理しようとしていますが、デザインをきれいに保つためにどこで処理すればよいかわかりません。

[op onCompletion:^(MKNetworkOperation *completedOperation) {
    NSDictionary *jsonDictionary = [completedOperation responseJSON];

    // This part is always called on the main thread but
    // I want to process here my jsonDictionary on a background thread
    // to avoid blocking the main thread
} onError:^(NSError* error) {
    errorBlock(error);
}];

jsonDictionary の処理時間は長く、メイン スレッドでそれを実行したくありません。MKNetworkKit の設計と哲学をクリーンに保ちながら、バックグラウンド スレッドに切り替える方法を教えてください。

ありがとう、
マーティン

4

1 に答える 1

3

完了ハンドラ内でこのコードを使用します。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{

    //asynchronous code
    dispatch_async(dispatch_get_main_queue(), ^{

        //synchronous code
    });
});
于 2012-04-09T15:34:25.867 に答える