0

Web サービスからデータを XML として取得する iPhone アプリを作成しています。Web サービスによってデータが見つからない場合、次のような空のドキュメントが返されます。

<?xml version="1.0"?>
<root_element/>

このデータは解析されてから配列に追加され、続いてテーブル ビューに追加されます。

しかし、明らか-numberOfRowsInSectionreturn [self.array count];ドキュメントが空の場合、配列には何も追加されず、解析エラーは発生しませんが、代わりにindex out of boundsエラーが発生します。isDocumentEmptyドキュメントに要素があるかどうかを確認する方法またはそのような手段はありますか?

他にどのようにこれを確認することをお勧めしますか? また、ユーザーに警告するにはどのような方法を使用すればよいですか? アラート ビューを表示してから、コントローラーをポップしますか?

ありがとう。

4

3 に答える 3

0

NSXMLParser を使用して XML データを解析する方法については、Apple のSeismicXMLサンプル アプリケーションを参照してください。

このアプリケーションでは、バックグラウンド スレッドで XML 解析が行われ、解析されたオブジェクトのバッチで地震テーブル ビューが更新されます。

于 2010-01-11T06:40:20.373 に答える
0

問題は、テーブルビューをリロードする場所だと思います。範囲外の例外は、配列インデックスの範囲外にある配列から要素にアクセスすると生成されます。

そこで、問題が何であるかを正確に知るためのデバッグのヒントをいくつか紹介します

  • 例外が発生した後、まずコンソールに移動します。「where」と入力してEnterキーを押すと、例外の詳細が表示されます。
  • このエラーが発生している正確な行番号が表示されます。
  • その行の直前にブレークポイントを置き、そこでデバッグします

あなたがしているエラーが見つかります。

これで問題が解決しない場合。コード スニペットの一部を表示してください。

ありがとう、

マドゥップ

于 2010-01-11T11:54:04.050 に答える
0

以下を使用できます。

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
 namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
   attributes:(NSDictionary *)attributeDict

root_element/elementName としてを確認します

于 2010-01-11T01:11:18.260 に答える