任何人都可以帮助我performSelectorInBackground
吗?我想在performSelectorInBackground
中重新加载包含更新数据的表。
答案 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。