在我的“didFinishLaunchingWithOptions”方法中,我在我的 GUI 中创建了一个 UIProgressView,然后我调用一个方法来调用一个带有 NSURLConnection 的 WebService 来获取带有 SOAP 消息的 XML。
在委托方法“connectionDidFinishLoading”中,我在另一个类中使用 NSXMLParser 解析 XML。
问题是我想在解析 XML 时更新我的 UIProgressView,但是在解析整个 XML 之后它会更新。我听说这是因为 NSURLconnection 在主线程上运行并阻塞了 UI。
如何同时解析和更新进度条?
- (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];
}