Как перезагрузить UIView после NSXMLParser в Iphone? - PullRequest
0 голосов
/ 20 сентября 2011

Я использую 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, также я запускаю индикатор активности, когда запрашиваю веб-службу, и останавливаю его в didEndElement. Но я заметил, что иногда обнаруживается, что персонаж не вызывается, и Мой пользовательский интерфейс зависает Я хочу обновить свой интерфейс после завершения анализа. Как я могу это сделать? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 20 сентября 2011

Вы можете попытаться перезагрузить представление в:

Отправлено объектом синтаксического анализа делегату, когда он успешно завершил анализ :

- (void)parserDidEndDocument:(NSXMLParser *)parser

Отправляется объектом синтаксического анализа его делегату, когда он сталкивается с фатальной ошибкой.Когда этот метод вызывается, синтаксический анализ останавливается :

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
0 голосов
/ 20 сентября 2011

Когда вызывается приложение

- (void)parserDidEndDocument:(NSXMLParser *)parser

, вы хотите сделать

[self reloadView];

или любой другой метод перезагрузки.

0 голосов
/ 20 сентября 2011

Вы можете создать подкласс NSOperation и попытаться проанализировать XML в этом классе, чтобы избежать зависания пользовательского интерфейса. Более подробную информацию о том, как этого добиться, смотрите здесь NSOperaion

перерисовать вызов UIView [self.view setNeedsDisplay];

...