У меня есть представление UIProgress, которое я хочу обновить по мере запуска анализатора NSXML.Парсер NSXML работает в главном потоке и занимает около 30 секунд.
В конце секции синтаксического анализа я вызываю метод в моем делегате приложения:
[appDelegate updateLoadingScreen:0.75];
ПриложениеЗатем делегат вызывает метод modelLoadingProgressUpdate в загрузочном экране:
- (void)updateLoadingScreen : (float)progress {
NSLog(@"PROGRESS REQUEST !!!");
NSNumber * progressNS = [NSNumber numberWithFloat:progress];
[loadingScreen modelLoadingProgressUpdate : progressNS];
}
Затем метод modelLoadingProgressUpdate использует очередь отправки для обновления UIProgressBar:
- (void) modelLoadingProgressUpdate :(NSNumber *)progress {
dispatch_queue_t mainqueue = dispatch_get_main_queue();
dispatch_async(mainqueue, ^ {
float updateProgress = [progress floatValue];
NSLog(@"Update Progress is %f", updateProgress);
progressView.progress = updateProgress;
});
}
Однако в моем UIProgressView ничего не обновляется.modelLoadingProgressUpdate
, кажется, срабатывает только после того, как парсер завершил работу.
Может кто-нибудь определить, что не так?