2012-04-09 6 views
4

저는 MKNetworkKit에 익숙하며 약간의 디자인 문제가 있습니다. 배경 스레드에서 MKNetworkOperation에 의해 가져온 데이터를 처리하려고하지만 디자인을 깨끗하게 유지하기 위해 어디에서해야하는지 잘 모르겠습니다. 의 디자인 철학을 유지하면서백그라운드 스레드에서 MKNetworkKit의 데이터를 처리하는 방법은 무엇입니까?

[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 청소 하시겠습니까? 당신의 완료 핸들러 내에서

감사합니다,
마틴

답변

3

이 코드를 사용합니다.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ 

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

     //synchronous code 
    }); 
}); 
+0

고마워요! 확실하게 "비동기 코드"는 백그라운드 스레드에 있고 "동기 코드"는 기본 스레드에 있습니까? – MartinMoizard

+0

예, 어디서나이 dispatch_async 코드를 사용할 수 있습니다. MKNetworkKit뿐 아니라 – Mugunth

관련 문제