こんばんはみんなで返されるJSONの解析、建築HTTP通信へのアプローチとiOS
私の質問は、具体的な技術よりも工学/デザインパターンのアプローチの詳細です。
私はJSONオブジェクトを返すリモートAPIとのやりとりが多いアプリケーションを開発しています。データの検索、解析、利用は問題ではなく、非常にスムーズに作業しています。私はこの種のシナリオのための最良の設計アプローチについていくつかの方向性を見出したいと思っています。
私は(擬似コードと宣言で)これまで持っているものを説明し、あなたが助けることができるかどうかを確認します。
必要NSURLConnectionのデリゲートメソッドを実装するHTTPフェッチャクラスを。その完了時に呼び出し元のクラスに
@implementation HTTPFetcher{ - (id)initWithUrlRequest:(NSURLRequest *)aRequest receiver:(id)aReceiver action:(SEL)aReceiverAction { //set the member variables etc.. } //all NSURLConnection delegate methods - (void)connectionDidFinishLoading... { [receiver performSelector:action withObject:self]; } }
を返すために、私はその後、HTTPFetcherを呼び出すためのシングルトンHTTPControllerクラスを持っているように私は、コールバックメソッドセレクタでクラスを初期化:
今- (void)postWithRequestString:(NSString *)aRequestString { [urlRequest setHTTPBody:[aRequestString dataUsingEncoding:NSUTF8StringEncoding]]; fetcher = [[HTTPFetcher alloc]initWithUrlRequest:urlRequest receiver:self action:@selector(receivedDataFromService:)]; [fetcher start]; } - (void)receivedDataFromService:(HTTPFetcher *)aFetcher{ //handle the received data and split the parent object into an NSMutableDictionary }
このアプローチは、私がモデル化しなければならない別々のエンティティ(特に各エンティティのためのSingleton HTTPControllerを持つ)を与えたアプリ向けにはうまく機能します。
私の問題は、JSONのカスタム解析をどこで処理するかです。現時点では、データが必要なViewControllerの解析を行っていますが、これはソースに近すぎるため、さらに抽象化する必要がありますが、わかりません。
シングルトンクラス内での解析を容易にするメソッドを含めるか、アクションを解析するためのコントローラをさらに作成する必要がありますか?
私はあなたからのお便りをお待ちして
おかげ
お返事ありがとうございます。 ASIHTTPRequestは非常に良い呼びだ - 私は実際にアプリケーションのビルドを最初にレビューするときにこれを考慮したが、クライアントの仕様はそれが提供する利点を減らした。さらに、クライアントは可能な限り第三者のライブラリを含むことを嫌っています。良い答え - 時間をとっていただきありがとうございます。 – JordanMazurke