В моем приложении каждая ячейка в UITableview нуждается в данных, полученных из API. Чтобы приложение выглядело быстрее, я получаю данные для одной ячейки за один раз и отображаю их с помощью [tableview reloadData]
. Но при этом сам ViewController не отвечает. Я не могу нажать кнопку «Назад» или коснуться ячейки (для вызова didSelectRowAtIndexPath
). Есть ли решение для этого? Я вызываю метод reloadData
как этотВзаимодействие не работает, когда выполняется [tableview reloadData]
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
dispatch_async(queue, ^{
[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
});
Попробуйте 'dispatch_after (dispatch_time (DISPATCH_TIME_NOW (int64_t) (1 * NSEC_PER_SEC)), dispatch_get_main_queue()^{ [Tableview reloadData]; }.),' – iphonic
Это почти сработало. теперь я могу получить кнопку «Назад», чтобы ответить. но как только он достигнет предыдущего диспетчера представлений, приложение выйдет из строя. Можете ли вы подумать о какой-либо причине, которая может произойти? –
Я хотел бы увидеть журнал сбоев для этого, это может быть вызвано чем-то другим, чем то, о чем вы думаете. – iphonic