2011-08-02 12 views
1

背景: iPhoneアプリケーションとREST WebService製品の初期段階です。基本的には、サーバー上にデータベースがあり、このデータベースにアクセスするためにいくつかのREST APIが書かれています。私はこれらのREST APIを消費するコンパニオンiPhoneアプリを持っています。REST APIとiPhoneアプリケーションのアーキテクチャとコード構造

質問: REST APIにアクセスするためのコードを配置する最適な方法は何ですか? NSObjectの別のサブクラスを作成し、そこにインターフェイスと実装の詳細を配置する必要がありますか? REST APIとやりとりするさまざまなViewControllerで、アプリケーション全体でコードの重複を減らしたいと思います。

例:私のアプリは起動し、API対ローカルから返された値を比較することで、デバイスのローカル情報の現在の状態を判断するためにREST API呼び出しを行います。次に、APIから更新要求を出してローカルデータストアを更新します。

私は起動時ViewControllerでこのロジックをすべて持っていますが、NSURLConnectionを使用して複数の呼び出しがあり、これはデリゲートにしかありません。私は同じViewControllerでこれらの別々の呼び出しを行う方法を知らない。

この問題を解決するには、いくつかの方法がありますか?

答えて

1

私は通常、必要なパラメータで初期化できるASIHTTPRequest(サブクラス化ではなく合成を使用)を使用するカスタムオブジェクトを作成し、それを使用してRESTfulサービスへのリクエストを管理します。カスタムオブジェクトは、リクエストが非同期で実行されている間にこのフィードバックを使用してアプリケーションUIを更新できるように、成功、失敗、その他のカスタム通知を処理するためのデリゲートプロトコルを提供します。

リクエストから返される大量のデータを解析する必要がある場合は、HTTPリクエスト成功コールバックではなく、別のスレッドを起動してください。そうしないと、ネットワークアクティビティスピナーがアクティブに長くなりますそれが実際にあるべきであるよりも。

同じタイプの複数のリクエストを管理する必要がある場合は、カスタムリクエストに「タグ」プロパティを追加して、成功/失敗の代理応答が呼び出されたときに、元の要求にインスタンス変数を保持する必要はありません。

関連する問題