본문으로 바로가기
// 여기서부터 비동기 코드 시작.
// dispatch_async 함수는 내부블럭의 코드 실행에 영향을 받지 않고 바로 실행이 끝난다.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
    // 작업이 오래 걸리는 API를 백그라운드 스레드에서 실행한다.
    BOOL res = [self heavyOperatingMethod];

    dispatch_async(dispatch_get_main_queue(), ^{
        // 이 블럭은 메인스레드(UI)에서 실행된다.
        if (res) {
            [self operationSucceed];
        } else {
            [self operationFailed];
        }
    });
});


원문 출처 : http://seorenn.blogspot.com/2012/04/ios.html