Я использую LRResty и NSXMLRequest для отображения результатов поиска из API. Вот как выглядит мой код:
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[[LRResty client] get:searchEndpointURL withBlock:^(LRRestyResponse *response) {
//NSLog(@"Results:\n\n\n%@", [response asString]);
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:[response responseData]];
parser.delegate = self;
//TODO: Why does this work faster than running in the background?
[parser parse];
//[parser performSelectorInBackground:@selector(parse) withObject:nil]
}];
По какой-то причине мой контроллер отображения поиска обновляется быстрее, когда я анализирую блокировку основного потока, чем без нее.
Связано ли снижение производительности с тем, что парсер не работает в основном потоке? Как же так?