Как избежать фоновой ветки в iOS 9
Я работаю над приложением, и я использовал настраиваемую ячейку таблицы для отображения данных. Когда мое приложение запускается, оно выдает это предупреждение.
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release
Я добавил несколько точек останова и посмотрел, когда это произойдет. в этот момент оно наступает (время, когда я звоню в ячейку обычного представления таблицы)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
AirportTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];//in here it comes
ac = [detailArray objectAtIndex:indexPath.row];
cell.airportname.text = ac.airPort;
return cell;
}
Я пробовал с этим
dispatch_async(dispatch_get_main_queue(), ^{
// code here
});
но я не знаю, как правильно его использовать. Есть ли способ избежать этого. Надеюсь, что ваши ответы. Спасибо
1 ответ
cellForRowAtIndexPath: не должен вызываться из фонового потока. Вы, вероятно, вызываете reloadData: или что-то похожее из фонового потока, и это очень вредно для здоровья.