Вы должны создать табличное представление и показать его немедленно, чтобы пользователь не думал, что ваше приложение не работает. Возможно UIProgressIndicator
или что-то, что показывает, что вы что-то делаете?
Ваш фоновый поток должен выполнять загрузку, как вы правильно выбрали. Когда это будет сделано, перезвоните основному потоку через performSelectorOnMainThread:...
или dispatch_async()
на dispatch_get_main_queue()
и вызовите [myTableView reloadData]
, чтобы обновить пользовательский интерфейс.
Чтобы предотвратить преждевременную загрузку таблицы, вы можете воспользоваться несколькими подходами. Предположительно, вы храните свои данные в массиве, поскольку UITableView
отображает упорядоченные данные. Если так, то просто не заполняйте массив, пока поток не закончится. Если это не сработает, вы можете просто использовать BOOL
ivar, который вы используете, чтобы указать, закончили ли вы загрузку, а затем использовать состояние BOOL
, чтобы определить, что вы должны показать в своем UITableView
.