この場合、「バックグラウンドで」とは、別のスレッドでの意味です。したがって、あなたはマルチスレッドについて話しているのです。iOSの場合のバックグラウンド処理(アプリケーションがバックグラウンドにあるときに実行されるタスク)と混同しないでください。
あなたがやりたいことをするために、私はGCD
(Grand Central Dispatch)を使うことをお勧めします、あなたはスムーズdispatch
なblock
「バックグラウンドのような」処理を達成するために別のスレッド(メインスレッド以外)にコードを送ることができます-覚えておいてくださいメインスレッドはUIに関連するすべてを処理するため、(文字通り)ブロックしないようにするには、別のスレッドのリモートソースとの間でのダウンロード/アップロードなどの長期的なプロセスを実行する必要があります。
これはあなたがそうすることができることの例です:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Prepare your upload request
NSError * _urlError = nil;
NSHTTPURLResponse * _responseHeaders = nil;
NSData * responseData = [NSURLConnection sendSynchronousRequest:uploadHTTPRequest
returningResponse:&_responseHeaders
error:&_urlError];
// by this line, we have a response
dispatch_async( dispatch_get_main_queue(), ^{
// Update UI or whatever, this is where you "rejoin" the main thread if needed.
// Maybe for development, show a UIAlertView...
});
});