2011-09-20 70 views
0

我正在使用NSXMLParser來解析一些xml數據。我使用了一些委託方法一樣,如何在Iphone中的NSXMLParser之後重新加載UIView?

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

這是的NSXMLParser在MYAppDelegate.m,現在我要完成對Home.m解析後重新加載UI,我也開始活動指示燈,當我請求Web服務並在didEndElement中停止它。但是我注意到有時候發現角色不會被調用,而且我的用戶界面會被凍結。我想在解析完成後更新我的UI。我如何做到這一點? 在此先感謝。

回答

2

您可以嘗試重新加載您的看法:

解析器對象發送給委託時,它已經成功地完成了分析

- (void)parserDidEndDocument:(NSXMLParser *)parser 

由一個解析器對象發送到其委託當它遇到致命錯誤時。當調用該方法,解析停止

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError 
+0

我試着在parserDidEndDocument中調用我的UI更新方法,但我沒有在foundCharacters中獲取任何字符串,並且我的Home.m獲取了舊數據的更新。我希望我的UI在得到解析的數據後能夠響應。如何實現這一目標? – Panache

+0

我不知道你的應用程序的架構,所以很難給出準確的答案。我可以建議你應該合併這些方法,並在新數據可用時重新加載數據 – Nekto

0

您可以創建一個子類的NSOperation,並嘗試解析XML,在該類避免UI凍結更多信息如何實現這一點,看看這裏NSOperaion

重繪的UIView電話[self.view setNeedsDisplay];

-1

當你的應用的

- (void)parserDidEndDocument:(NSXMLParser *)parser 

被稱爲那麼你想要做

[self reloadView]; 

或任何你重裝方法。