В моем методе "didFinishLaunchingWithOptions" я создал UIProgressView в своем графическом интерфейсе, и после этого я вызываю метод для вызова WebService с NSURLConnection для получения XML с сообщением SOAP.
В методе делегата "connectionDidFinishLoading" я анализирую XML с NSXMLParser в другом классе.
Проблема в том, что я хочу обновить мой UIProgressView во время синтаксического анализа XML, но он обновляется после того, как весь XML был проанализирован. Я слышал, это потому, что NSURLconnection запускается в основном потоке и блокирует пользовательский интерфейс.
Как я могу одновременно анализировать и обновлять индикатор выполнения?
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString * theXML = [[NSString alloc] initWithBytes:[webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
NSLog( @"The XML : %@", theXML );
[theXML release];
theXmlParser = [[NSXMLParser alloc] initWithData:webData];
XMLParser * theParseur = [[XMLParser alloc] initXMLParser];
[theXmlParser setDelegate:theParseur];
[theXmlParser setShouldProcessNamespaces:NO];
[theXmlParser setShouldReportNamespacePrefixes:NO];
[theXmlParser setShouldResolveExternalEntities:NO];
NSLog(@"Begin parsing...");
BOOL success = [theXmlParser parse];
if( success ) {
// my code...
} else {
NSLog(@"XML partner : End Parsing > ERROR : %@", [[theXmlParser parserError] localizedDescription] );
[theXmlParser release];
}
[connection release];
[webData release];
}