0

Objective-C のクラスによってすべて定義されている特定の「モデル」を返す Web サービスがあります。RESTful メソッドを呼び出すと、単一のモデル XML またはモデル XML 要素のリストが返されます。

<widget>
   <a>foo</a>
</widget>

また

<widgets>
 <widget>
    <a>foo</a>
 </widget>
  ....
 <widget>
    <a>foo</a>
 </widget>
</widgets>

オブジェクトまたはオブジェクトのリストの解析が簡単で、最終的にモデル オブジェクトを簡単に追加できるように、クラスを編成する方法を考え出そうとしています。明らかに、「モデル」ごとにデリゲートが必要ですが、簡単かつエレガントになるように整理するにはどうすればよいでしょうか。各モデル オブジェクトの xml デリゲート? リストを処理する方法は?おそらく、リストに従って正しい個々のモデルデリゲートを参照するリストデリゲートオブジェクトのタイプでしょうか? (つまり: ウィジェット -> ウィジェット デリゲート)

Web サービスのすべてのメソッドを提供する単一のクラスを作成します。

- (Widget *)getWidgetById: (int) id;
- (some array) getWidgets:;

他の何よりもオブジェクト指向のデザインパターンの問題だと思います。

4

2 に答える 2

1

私があなただったら、サーバーに JSON または PLIST を返させることを強く検討します。

これらの 2 つの形式の利点は、XML よりも自由度が低く、配列、辞書、さまざまな型の要素に自然に構造化され、オブジェクトのプロパティに自然にマップされ、解析が非常に簡単になることです (必要な JSON の場合)。組み込みの解析を使用できる plists の TouchJSON のようなライブラリ)。また、何かを要素にするか属性にするかについても心配する必要はありません。

基本的な式は次のとおりです。サーバーから応答を取得し、1 回の呼び出しでデータを NSDictionary または NSArray (通常は NSDictionaries の配列) に変換し、それらから属性をデータ モデルに抽出します。

于 2010-01-13T03:49:22.750 に答える
1

XMLPerformance Apple サンプル コードを調べることから始めることをお勧めします。NSXMLParserまたはを使用することもlibxml、独自のソリューションを展開することもできます。また、Data Management Coding How-To のXML 解析セクションも参照してください。

于 2010-01-13T02:54:05.827 に答える