I have a tableView that loads an XML feed as follows:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if ([stories count] == 0) {
NSString *path = @"http://myurl.com/file.xml";
[self parseXMLFileAtURL:path];
}
}
I’d like to have the spinner to show on the top bar at the app launch and dissapear once the data is displayed on my tableView.
I thought that putting the beginning at viewDidAppear and the end at -(void)parserDidEndDocument:(NSXMLParser *)parser but it didn’t work.
I’d appreciate a good explained solution on how to implement this solution.
Here’s the problem:
NSXMLParseris a synchronous API. That means that as soon as you callparseon yourNSXMLParser, that thread is going to be totally stuck parsing xml, which means no UI updates.Here’s how I usually solve this:
I’ve used this method many times, and it works beautifully.