2012-03-18 27 views
0

NSURLConnectionとNSOperationQueue(?)を使用して、httpsで複数のページをダウンロードしたいとします。私はASIHTTPRequestなどを使用したくないので、アップルがiOSを更新したときにコードを更新する必要はありません(必要な場合)。私は普通のAppleのものを使いたい。iOS標準クラスなどを使用した非同期バックグラウンドダウンロード

約100ページがダウンロードされ、ダウンロードされるべき画像へのURLがあります。このリンクは、前のページをダウンロードする前にはわかりません。私は5つ以上の同時ダウンロードが同時に実行されるべきだと考えています。

ダウンロードのすべてと進行状況を把握すると同時に、反応的なユーザーインターフェイスを実現するにはどうすればよいですか?

答えて

0

すでに書いたようにNSURLConnectionとNSOperationQueueを使用できると思います。 NSURLConnectionは、それがに属している必要がありますし、あなたが完了ハンドラを定義することができNSOperationQueueあなたが定義することができ、クラスの機能があり

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler 

を持っています。ハンドラは、NSURLConnectionが終了したときに実行されるブロックです。ブロックでは、NSURLResponseにアクセスできます。 全体が非同期であるため、ユーザーインターフェイスにアクセスできます。

ここで大きな利点の1つは、ブロックが異なるCPUコアで実行できることです。

関連する問題