2

私のアプリは TabBarController で構成され、各タブには UITableView があります。

起動時に、サーバーからの XML ファイルを解析して Object クラスにし、最初のテーブルビューにオブジェクトを表示します。

私の質問は、2 番目の XML ファイルを解析したい場合はどうすればよいかということです。現在、そうすると、「XML-file-2」の情報が「XML-file-1」で解析されたオブジェクトを上書きします。これを適切に行うにはどうすればよいですか?XML ファイルごとに別のオブジェクト クラスを設定する必要がありますか? または、この問題を回避する別のオブジェクト クラスがありますか?

NSXMLParser を使用しています。

4

4 に答える 4

1

XMLParser読み取りたい XML ファイルごとに 1 つずつ、2 つの のインスタンスを用意することを検討する必要があると思います。XML相互に影響を与えることなく、同時に多くのファイルを読み取ることができます。また、よりモジュール化されています。

于 2009-07-07T21:08:06.763 に答える
1

そのスニペットの 21 行目 ( http://pastie.org/537227 ) で、products 配列 ( appDelegate.products) を新しい可変配列に設定しています。2 回目の実行を追加するappDelegate.products,場合は、appDelegate.products既にオブジェクトが含まれているかどうかを確認する必要があります。その場合は、新しい配列を割り当てずに、NSMutableArray の addObject: メソッドを使用してそれらを追加します。

于 2009-07-07T20:57:02.307 に答える
0

...すでに存在するデータを上書きしないでください...?

UITableViewにコンテンツを表示している場合は、どこかにNSArrayがあることを確信しています。うまくいけば、これを適切に設定した場合、NSArrayにはモデルオブジェクトが含まれ、各オブジェクトはUITableViewの1つの行に対応します。ただし、NSMutableArrayを使用することをお勧めします。次に、2番目のXMLファイルを解析し、そこからモデルオブジェクトを構築するときは、NSMutableArrayのaddObject:メソッドを使用してから、UITableViewでreloadDataを使用します。

于 2009-07-07T14:33:56.300 に答える
0

notnoop が既に述べたように、複数の NSXMLParser インスタンスを作成することが最善の解決策です。Simple RSS Reader
と呼ばれるオープン ソースの iPhone RSS リーダーは、今必要なものの良いサンプルです。Simple RSS Reader のRSSParserクラスをそのまま 利用しても構いません。

HTH

于 2010-01-18T17:20:57.110 に答える