2012-08-16 5 views
1

Xcode에서 2 개의 스레드를 실행하는 방법을 찾고 싶습니다. 예. 업로드 파일 (크기는 3 ~ 4MB 정도로 큽니다)을 웹 사이트 에 업로드하면 사용자가이 업로드 파일을 사용하지 않고도 계속해서 다른 작업을 수행 할 수 있습니다.iPhone 앱이 다른 작업을 수행하는 동안 백그라운드에서 파일을 업로드하는 방법

상단 표시 줄에 네트워크 활동 아이콘을 표시 할 수 있지만 스레드 분리 방법을 알 수는 없습니다.

UIApplication* app = [UIApplication sharedApplication]; 
app.networkActivityIndicatorVisible = YES; 

어떤 생각? 감사합니다

답변

0

NSURLConnection 또는 ASIHTTPRequest과 같은 기타 프레임 워크를 사용하는 경우 단순히 비동기 요청 유형을 사용하십시오. 그것은 백그라운드에서 실행되며 응용 프로그램이 영향을받지 않습니다, 다른 모든 작업은 주 스레드에서 실행됩니다.

0

AFNetworking 또는 두 파일 모두 업로드 파일 예를 확인할 수 있습니다.

+0

void dispatch_async ( dispatch_queue_t queue, dispatch_block_t 블록)를 사용하면 어떨까요? –

+0

[GCD API] (https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html)를 사용할 수 있지만 NSOperation을 사용하여 질문에 언급 한 작업 더 적절할 것입니다. 동시성 프로그래밍 [here] (https://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008091)에 대한 자세한 정보를 찾을 수 있습니다.) – mijokaliger

+0

"_WebThreadLockFromAnyThread (bool), 0x2f45b0 : 주 스레드 또는 웹 스레드가 아닌 스레드에서 웹 잠금 가져 오는 중 오류가 발생했습니다. 보조 스레드에서 UIKit 호출해야합니다." 코드를 사용하는 동안 UIStoryboard * mainStoryboard = [UIStoryboard storyboardWithName : kMAINSTORYBOARD 번들 : nil]; UIViewController * controller = (UIViewController *) [mainStoryboard instantiateViewControllerWithIdentifier : kMAINNAVIGATION]; controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController : 컨트롤러 애니메이션 : 예]; –

관련 문제