私はphpサーバーからJSONをロードし、ライブラリで解析し、このデータでオブジェクトを作成するiphone用のアプリに取り組んでいます。私のコードは正常に動作しますが、私のやり方は間違っているようです:
viewController は、読み込み中のビューをユーザーに表示します。一方、ViewController は get 要求を行い、データを受信します。VC は応答を解析し、辞書を取得します。辞書は、辞書から作成されたオブジェクトを返す「作成者クラス」に送信されます。
この操作を 2 回行いますが、設計が悪いと思います。
View Controller は http リクエストを実行する必要がありますか? 「objectLoader」であってはいけませんか? 作成クラスのメイン メソッドは、次のような if/else スパゲッティを大量に作成します。
for(NSString key in dictionary){
if(key isEqualToString "a key"){
perform action
}
else if(key isEqualToString "an other key"){
perform action
}
....
}
それを解決するためのアイデアはありますか?キー/セレクターの辞書を作成して解決し、次のようなことを行うことを考えていました:
for(NSString key in dictionary){
[self performSelector:[selectors getObjectForKey:key]]
}
しかし、辞書でセレクターを参照できるかどうかはわかりません...
最後に、私に来る他のオプションは、次のようなクラスメソッドを使用して、解析された辞書をオブジェクトに送信することです[ClassName createObjectWithDictionary:parsedDictionary]
。それはそれを行う良い方法ですか?
質問が少し曖昧であることは承知していますが、どのデザイン パターンを適用すればよいのか、また、この話で誰が何を担当しているのかについて、少し迷っています。