如何在Iphone中的NSXMLParser之后重新加载UIView?

时间:2011-09-20 14:21:44

标签: iphone nsxmlparser uiactivityindicatorview

我正在使用NSXMLParser来解析一些xml数据。我正在使用一些委托方法,如

-(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冻结了。我想在解析完成后更新我的UI。我怎么能这样做? 提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以尝试重新加载视图:

解析器对象在成功完成解析后发送给委托

- (void)parserDidEndDocument:(NSXMLParser *)parser

在遇到致命错误时由解析器对象发送到其委托。调用此方法时,将停止解析

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

答案 1 :(得分:0)

您可以创建一个NSOperation子类并尝试解析该类中的XML以避免UI冻结更多信息如何实现此目的,请查看NSOperaion

重绘UIView调用[self.view setNeedsDisplay];

答案 2 :(得分:-1)

当你的应用

- (void)parserDidEndDocument:(NSXMLParser *)parser

被调用然后你想做

[self reloadView];

或者你的重装方法。