Айфон + выполнить селектор в фоновом режиме - PullRequest
0 голосов
/ 20 марта 2012

Может ли кто-нибудь помочь мне с performSelectorInBackground? Я хочу перезагрузить таблицу с обновленными данными в performSelectorInBackground.

Ответы [ 2 ]

4 голосов
/ 20 марта 2012

Что вы можете сделать, это просто получить данные в фоновом потоке и вернуться к основному потоку после получения данных и обновления представления таблицы в основном потоке.

- (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
}
0 голосов
/ 20 марта 2012

Все функциональные возможности пользовательского интерфейса должны выполняться в основном потоке. Поэтому вам нужно перезагрузить UITableView только в основном потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...