nsurlconnectionの複数のインスタンスを使用したデータの破損を回避するにはどうすればよいですか
-
08-10-2019 - |
質問
nsurlConnectionを複数回呼び出して、Webから画像データをダウンロードするiOSアプリを作成しました。時々、1つのnsurlconnectionが他のnsurlconnectionが開始する前に終了していない場合があります。腐敗したJPEGデータが表示されていますが、私のDidEivedata Delegateが2つの個別のnsurlConnectionからデータを保存し、2つのJPEGデータストリームを1つのデータ変数にまとめているため、腐敗を引き起こしているためだと思います。
私の質問は、これを避けるための最良の方法は何ですか?各nsurlConnectionインスタンスを個別のデータ変数に保存したり、前のインスタンスを保存する前に各インスタンスを待機させる方法はないようです。
私のコードは基本的に、ここではAppleの例に従います。これを除き、nsurlrequestとnsurlconnectionを作成するLoadData関数を複数回呼び出します。 http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/urlloadingsystem/tasks/usingnsurlconnection.html
どんな助けにもよろしくお願いします。
解決
代表者の接続:dedreceivedata:メソッドが呼び出されると、最初のパラメーターとして接続インスタンスがあります。したがって、それを使用して、どの接続が受信したデータを追跡する必要があります。
Appleのサンプルは、nsmutabledataの1つのインスタンスを維持しています。コードには、アクティブ接続ごとに1つずつ、いくつかのインスタンスが必要です。
または、もちろん、各接続に個別のデリゲートオブジェクト(個々のインスタンス)を持つことができます。それは簡単かもしれません。