我試圖調用後添加一些操作的NSXMLParser parserDidStartDocument凍結應用
- (void)parserDidStartDocument:(NSXMLParser *)parser {
//NSLog(@"found file and started parsing");
alertView = [[UIAlertView alloc] initWithTitle:@"Caricamento..."
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5); // .5 so it doesn't blur
[alertView addSubview:spinner];
[spinner startAnimating];
[alertView show];
}
但它凍結的應用程序了一會兒,然後,當完成了XML解析,加載AlertView,ECC 。與UIRefreshControl同樣的事情。我滑下tableView,並在解析時凍結應用程序,我不能看到旋轉的旋轉。
有什麼想法?
編輯: 這裏我第一時間致電解析器:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSString * path = @"thexmlpath.xml";
if(!caricato)
[NSThread detachNewThreadSelector:@selector(parseXMLFileAtURL:) toTarget:self withObject:path];
//[self parseXMLFileAtURL:path];
caricato = YES;}
在這裏,我打電話的時候,我用的是RefreshControl:
- (void)refreshControlRequest{
NSLog(@"refreshing...");
NSString * path = @"thexmlpath.xml";
[self performSelector:@selector(parseXMLFileAtURL:) withObject:path];}
我想我必須在後臺添加XML解析任務,所以它不凍結應用程序,但我不知道該怎麼做。 – Wildchild89
顯示你在哪裏調用解析的更多代碼。那就是你需要把它放在後臺隊列中,然後調用更新主隊列上的用戶界面控件的地方。 – Srikanth
現在我添加了performSelector,但應用程序崩潰是由於:EXC_BAD_ACCESS線程錯誤。 – Wildchild89