iPhone,后台线程无法正常工作 [英] iphone, background thread not working properly

查看:128
本文介绍了iPhone,后台线程无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想先显示视图,然后将数据加载到后台线程中.当我从根控制器导航到视图控制器时,我想先显示视图.到目前为止,它一直停留在根控制器上,直到加载了视图控制器为止.这是我的根控制器代码.

I want to display the view first and then load the data in a background thread. When I navigate from root controller to the view controller, I want to display the view first. As of now, it stays on the root controller until the view controller is loaded. Here's my code for the root controller.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{   
ProductDetailViewController *tempProductDetail = [[ProductDetailViewController alloc] init];

[self.navigationController pushViewController:tempProductDetail animated:YES];

[tempProductDetail release];
}

ProductDetailViewController,在这里我要先显示视图,然后再加载数据...

ProductDetailViewController, here I want to display the view first and then load the data...

- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
[self performSelectorOnMainThread:@selector(workerThread) withObject:nil waitUntilDone:NO];
}

-(void) workerThread{

NSAutoreleasePool *arPool = [[NSAutoreleasePool alloc] init];
[arPool release];
}

不知道我在做什么错.请帮助.

Don't know what I'm doing wrong. Please, help.

推荐答案

找到了解决此问题的方法

found the answer for this issue,

- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
[self performSelectorInBackground:@selector(workerThread) withObject:nil];
}

- (void) workerThread
{
// Set up a pool for the background task.
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];

// only do data fetching here, in my case from a webservice.
//...

// Always update the components back on the main UI thread.
[self performSelectorOnMainThread:@selector(displayView) withObject:nil waitUntilDone:YES];

[pool release];
}

// Called once the background thread task has finished.
- (void) displayView
{
//here in this method load all the UI components
}

这篇关于iPhone,后台线程无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆