0

iPhone から Web サービスに大量のファイルをアップロードしています。内部に UIActivityIndi​​catorView を含む UIAlertView を画面に表示したいと考えています。私はそれがうまくいくようにしました。ただし、各ファイルがアップロードされるたびに UIAlertView のタイトルを更新したいと考えています。(「ファイル 1 をアップロードしています...」、「ファイル 2 をアップロードしています...」など)

UI 実行ループが呼び出されることはないため、同期 Web 要求を使用してループ内でタイトルを設定することはできません。NSTimer を使用して Web リクエストを起動しようとしましたが、各リクエストの期間は予測できないため、うまくいきません。(リクエストが実際に終了する前に、メッセージが更新される可能性があります。)

iPhone の帯域幅はかなり限られているため、各ファイルを一度に 1 つずつ同期的にアップロードしたいと考えています。「この同期操作が完了したら、UI を更新してから別の同期操作を行う」というメカニズムがわかりません。

4

2 に答える 2

1

これを解決するために私が取ったアプローチは次のとおりです。

  1. UIAlertView を作成する
  2. 非同期 Web リクエストを開始してアイテムを投稿し、デリゲートを self に設定します
  3. connectionDidFinishLoading: メソッドで、投稿するアイテムが他にもあるかどうかを確認します。ある場合は、タイトルを更新し、別の非同期リクエストを開始します。そうでない場合は、アラートを閉じます。

これは、どのリクエストがアップロードされているかを追跡するためにいくつかのクラス変数を維持する必要があることを意味しますが、完全に機能し、複雑なスレッドなどは必要ありません。

于 2009-04-29T18:06:41.517 に答える