ASIHttpRequestおよびStoryboardでのログインビューコントローラの使用

OK、私は、いくつかの場所でASIHttpRequestを使用して、WebサービスからJSONデータを取得するアプリケーションを構築しています。または、Webサービスに投稿しています。私はそれが働いているが、実際には、さまざまなビューコントローラ(ログインビューコントローラ、テーブルビューコントローラ、および詳細ビューコントローラ)の周りに要求オブジェクトのいくつかのインスタンス化を振りかけるのが好きではない。私はすべてのASIHttpRequestメソッドを1つに移動したいWebサービスから返された値の辞書を返すだけです。この問題は、デリゲートメソッドが返さなければならないものを返さないということです。

HTTPRequestを作成し、要求が完了したときに値を返すすべてのメソッドをどのように統合するかについての提案は何でしょうか。

必要に応じてコードを投稿することができますが、これは具体的な問題ではなく一般的な質問のほうです。これをどうやって行うべきかについてのチュートリアルがあれば、私はそれを感謝します。私のコードを効率的かつきれいにしたい

ありがとう!

ベストアンサー

あなたの問題は非同期です。私はあなたが統合によって何を意味するかは分かりませんが、要求を呼び出すためにシングルトン(あなたは単にアプリケーションデリゲートを使うことができます)を持つことができます。だから、あなたはこのようなことをするでしょう:

[(MyAppDelegateClass *)[UIApplication sharedApplication].delegate doLoginStuff:(NSDictionary *)params delegate:self];

これらをすべて非同期で処理している場合、このメソッドを呼び出して何かを返すことはできません。 View
Controllerに何らかのコールバックがあることに悩まされます。これは、ASIがそのままの状態で動作する方法です。せいぜい、要求を生成するコードを最小限に抑え、反復的なプロパティーを設定することができます。

私はインスタンス化を全面的に浮かべることによってあなたが何を意味するのか分かりません。あなたが心配しているメモリであれば、同じオブジェクトを再利用することに違いはありません。
ASIは通常、自動解放されたリクエストを使用するため、「統合された」方法で作成することと同じです。それがクリーンなコードの場合、私はシングルトンの方法を行い、プレフィックスファイルで作成してインポートするユーティリティクラスのいくつかのタイプのショートカットcベースのメソッド呼び出しを作成します。しかし、もう一度、ビューコントローラにコールバックメソッドが必要なので、すでに動作するようになっているよりもはるかにクリーンではありません。私はあなたの痛みを共有します。

リクエストが戻ってきたら、ほとんどの場合、結果を解析するメソッドがあります。通常、私は1つのタイプのWebサービスしか扱っていないので、結果を解析して(また、デバッグ目的でNSLogにログする)メソッドを使用して、NSDictionaryまたはNSArrayを返します。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です