私と私のチームは現在、Objective-C の新人開発者 (入社から 3 か月未満) で、ネットワーク機能を備えたシンプルなタブ ベースのアプリの開発に取り組んでいます。このアプリには、テーブル ビューと対応する詳細ビューが各タブに表示されるナビゲーター コントローラーが含まれています。対象は iOS 4 SDK です。
ネットワーク側では、各テーブル ビューに必要なデータを取得するために、各ビューの NSURLConnection を処理するシングルトンとして機能する単一のクラスがあります。
機能は正常に動作し、データを正しく取得できますが、ユーザーが請願が終了するか、同じ請願のボタン (例: ログイン ボタン) が再度押されるまでビューを変更しない場合に限られます。そうしないと、さまざまな間違いが発生する可能性があります。たとえば、いずれかのナビゲーション コントローラーのルート ビューにのみ表示されるべきエラー メッセージが詳細ビューに表示されたり、その逆のエラー メッセージが表示されたりします。
問題は、現在「アクティブ ビュー」のシングルトンで単一のデリゲートしか処理していないことであり、ネイティブ メール アプリに基づいた動作をサポートするように変更する必要があるのではないかと考えています。ビューのそれぞれで要求されたものは、個別に正しくロードおよび更新され続けます。
私たちは、stackoverflow や他の Web サイトを調べましたが、従うべき適切な方法論が見つかりませんでした。NSOperationQueue を使用し、NSOperation で NSURLConnections をラップすることを検討していましたが、それが適切なアプローチであるかどうかはわかりません。
ユーザーの操作の気まぐれで、複数の非同期 NSURLConnections を処理して、親と子の両方の複数のビューをほぼ同時に更新する適切な方法について、誰か提案はありますか? 理想的には、推奨されているように、UI をブロックしたり、ボタンを無効にしたりしたくありません。
お時間をいただきありがとうございます!
編集 - 追加するのを忘れました。クライアントによって設定されたプロジェクトの制限の 1 つは、ネイティブの iOS SDK ネットワーク フレームワークのみを使用でき、ASIHTTPRequest フレームワークなどは使用できないということです。同時に、情報をアップロードするのではなく、WS から情報を取得するだけであることを忘れていました。