0

我正在编写一个 iPhone 应用程序,它从 Web 服务中以 XML 形式检索数据。如果 Web 服务没有找到数据,它会返回一个空文档,例如

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

正在解析此数据,然后将其添加到数组中,然后添加到表视图中。

在我的-numberOfRowsInSection我有return [self.array count];但显然如果文档为空,则不会将任何内容添加到数组中,并且我没有收到解析错误,而是收到index out of bounds错误。有没有一种isDocumentEmpty方法或一些类似的方法来检查文档是否有元素?

你还有什么建议我检查这个?我应该用什么方式来提醒用户?一个警报视图然后弹出控制器?

谢谢。

4

3 回答 3

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 回答
0

关于如何使用 NSXMLParser 解析 XML 数据,您可以查看Apple 的SeismicXML示例应用程序。

在此应用程序中,XML 解析发生在后台线程上,并使用批量解析的对象更新地震表视图。

于 2010-01-11T06:40:20.373 回答
0

我认为问题在于您要在哪里重新加载表格视图。当您从数组中访问超出数组索引范围的元素时,会生成越界异常。

所以这里有一些调试技巧可以准确地知道你的问题是什么

  • 发生异常后首先进入控制台。键入“where”并按回车,您将获得异常详细信息。
  • 您将获得出现此错误的确切行号。
  • 在该行之前放置一个断点并在那里调试

你会发现你正在做的错误。

如果这没有帮助。请显示您的一些代码片段。

谢谢,

马杜普

于 2010-01-11T11:54:04.050 回答