iPhone + performselector在背景中

时间:2012-03-20 09:09:57

标签: iphone ios ipad

任何人都可以帮助我performSelectorInBackground吗?我想在performSelectorInBackground中重新加载包含更新数据的表。

2 个答案:

答案 0 :(得分:4)

你能做的就是在后台线程中获取数据,一旦获得数据并在主线程中更新tableview,就可以返回主线程。

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   //All your views cell creations and other stuff
   [self performSelectorInBackground:@selector(loadDataThatToBeFetchedInThread:) 
                          withObject:objectArrayThatNeedToFetchData];
}

- (void) loadDataThatToBeFetchedInThread:(NSArray *)objectThatNeedToFetchData
{
    //Fetch the data here. which takes place in background thread
    [self performSelectorOnMainThread:@selector(updateTableViewWithTheData:) 
                           withObject:responseData 
                        waitUntilDone:YES];
}


- (void) updateTableViewWithTheData:(NSMutableArray *)yourData
{
    //Update Data to tableview here
}

答案 1 :(得分:0)

所有UI功能都应该在主线程中完成。所以你必须只在主线程中重新加载UITableView。