我正在使用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。我怎么能这样做? 提前致谢。
答案 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];
或者你的重装方法。