2010-01-11 53 views
0

我正在編寫一個iPhone應用程序,它以XML的形式從Web服務中檢索數據。如果沒有數據是由Web服務發現,則返回等使用NSXMLParser檢查XML文檔是否爲空

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

一個空文檔該數據被解析,然後添加到陣列中,並且隨後的表圖。

在我-numberOfRowsInSection我有return [self.array count];但是很顯然,如果該文件是空的,沒有被添加到陣列,和我沒有得到一個解析錯誤,而是得到一個index out of bounds錯誤。是否有isDocumentEmpty方法或一些此類檢查方法來查看文檔是否包含元素?

你還會怎麼建議我檢查一下?我應該用什麼方式來提醒用戶?警報視圖,然後彈出控制器?

謝謝。

回答

0

關於如何使用的NSXMLParser解析XML數據你可以從Apple檢查SeismicXML示例應用程序。

在這個應用程序中,XML解析發生在後臺線程上,並用批量的解析對象更新地震表視圖。

0

您可以使用:

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

並檢查root_element/作爲的ElementName

+0

我試圖用「root_element /」作爲的ElementName,但它沒有工作,在的ElementName還是「root_element」,這是目前正確的文檔中也是如此。 – joec 2010-01-11 02:07:12

0

我認爲問題出在你想重新加載tableview的地方。當您訪問超出數組索引範圍的數組中的元素時,會生成越界異常。

因此,這裏有一些調試技巧,知道你的問題是

  • 首先的正是去發生異常後控制檯。鍵入「where」並按回車,您將獲得異常詳細信息。
  • 你會得到確切的行號,你得到這個錯誤。
  • 將一個破發點只是線和調試之前有

你會發現你正在做的錯誤。

如果這沒有幫助。請顯示一些你的代碼片段。

感謝,

Madhup