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 回答