2012-02-29 8 views
0

私は自分のコーディングを改善する必要があります。iPhoneのサーバーからデータを取得する方が良い

私の問題は私が

http://192.168.11.222/images/a http://192.168.11.222/images/b http://192.168.11.222/images/c http://192.168.11.222/images/d http://192.168.11.222/images/e をヒットする必要があります例えば画像100

を持っている10種類のurl.that URLからのサーバーからデータをフェッチする必要がありますhttp://192.168.11.222/images/f http://192.168.11.222/images/g http://192.168.11.222/images/h http://192.168.11.222/images/i

画像が含まれているサーバー上のフォルダです。

現在、私はこれをNSURLConnectionWithTagで行い、response.and get saved.isを解析してこれを処理する方法がありますか?この場合も難しいプログレスバーを表示する必要があります。

答えて

1

URLごとに1回の操作でNSOperationQueueを設定し、たとえば3つの同時操作に設定します。 NSURLConnectionの非同期APIを使用してダウンロードを行います。

進行状況バーでは、個々のファイルが完成した後に進捗状況を更新し、一度に2つずつ(または何か)行うのが良いでしょう。とにかく待ち時間は "進捗状況"の半分以上になる可能性があるので、あなたのping時間を予測しようとしない限り、転送された実際のバイト数に基づくプログレスバーは(非常に大きな画像でない限り)煩わしいほど正確ではありません。

操作キューとGCDがどのように機能するのかを知る必要がありますが、ソートされてしまえば実際にはコードがあまり多くなくなり、堅実になります。

基本的には、ダウンロードする各URLの操作キューにコードのブロックを追加し、キューごとにダウンロードする方法を把握し、各コードブロックが終了すると別のコードブロックが実行されるプログレスバーを更新するにはメインスレッド(dispatch_sync(dispatch_get_main_queue(), ^{ ... }))をブロックします。

0

あなたのアプリにネットワーク関連のコードを書く場合は、AFNetworkingをご覧ください。これは、既に提供されているネットワークAPI iOSのラップです。

関連する問題