在iphone上,xml解析耗时且需要高效的方法
如何调用主线程???我可以解析,但不能显示数据在iphone上,xml解析耗时且需要高效的方法,iphone,Iphone,如何调用主线程???我可以解析,但不能显示数据 - (void)viewDidLoad { //self.navigationItem.rightBarButtonItem = self.editButtonItem; self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"10.png"]]; [super viewDidL
- (void)viewDidLoad {
//self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"10.png"]];
[super viewDidLoad];
[NSThread detachNewThreadSelector:@selector(startTheBackgroundJob) toTarget:self withObject:nil];
}
- (void)startTheBackgroundJob {
NSUserDefaults *getida = [NSUserDefaults standardUserDefaults];
myIDa = [getida stringForKey:@"AppID"];
NSLog(@"@BOOK MARK ");
NSString *ubook = [[NSString alloc] initWithFormat:@"http://www.wapp=%@&action=show",myIDa];
NSLog(@" bookmark %@",ubook);
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
//NSString *outputString = [[NSString stringWithString:usearch] stringByAppendingString: UserText];
ubook = [ubook stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"My string is now = %@", ubook);
NSURL *url = [[[NSURL alloc] initWithString:ubook]autorelease];
//NSURL *url= [NSURL URLWithString:outputString];
NSLog(@" bookmark URL IS %@",url);
NSXMLParser *xmlParser = [[[NSXMLParser alloc] initWithContentsOfURL:url] autorelease];
//Initialize the delegate.
XMLParserbookm *parser = [[[XMLParserbookm alloc] initXMLParser]autorelease];
//Set delegate
[xmlParser setDelegate:parser];
//Start parsing the XML file.
BOOL success = [xmlParser parse];
if(success)
{
NSLog(@" xml parsed suucess");
//[super viewDidLoad];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
//[self searchTableView];
//mytimer4=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(wipe) userInfo:nil repeats:NO];
}
else{
NSLog(@"eeror");
}
[NSThread sleepForTimeInterval:3];
[self performSelectorOnMainThread:@selector(makeMyProgressBarMoving) withObject:nil waitUntilDone:NO]; // HOW TO CALL MAIN THREAD
[pool release]
}
你可以试试看
,在转到新视图后调用此方法。然后,至少可以切换到新视图,您应该确保屏幕上有东西在等待xml解析视图显示:
- 使用线程:将解析放到另一个线程中,然后在完成后回调主线程,这样就不会有任何阻塞
,在转到新视图后调用此方法。然后,至少可以切换到新视图,您应该确保屏幕上有东西在等待xml解析视图显示:
- 使用线程:将解析放到另一个线程中,然后在完成后回调主线程,这样就不会有任何阻塞