Разделение загрузки данных и пользовательского интерфейса через потоки в Objective C / Какао - PullRequest
0 голосов
/ 15 июня 2009

В настоящее время я разрабатываю приложение для iPhone, которое загружает данные через веб-сервис в таблицу. Прямо сейчас у меня есть загрузка данных и создание / отображение моих ячеек через [tableView cellForRowAtIndexPath] в двух отдельных потоках. Моя проблема в том, что мне нужны данные для создания моих клеток.

Поэтому в настоящее время я загружаю свои данные в массив в одном потоке и блокирую часть создания ячейки в другом потоке до завершения. После завершения я возвращаюсь к своей основной теме, разблокирую часть создания ячейки и продолжаю.

Это на самом деле замедляет весь процесс. Я пытаюсь придумать дизайн, чтобы ускорить этот процесс.

1 Ответ

0 голосов
/ 15 июня 2009

Что именно вы подразумеваете под "блокировкой" и "разблокировкой" создания вашей ячейки?

Обычно я слежу за этим -

Пусть ячейки загружаются, когда появляется вид. Запустите NSThread для получения данных (в viewDidLoad или viewWillAppear). Отображать индикатор активности, пока фоновый поток не получит данные.

Как только фоновый поток возвращается с данными, переключитесь обратно в основной поток, перезагрузите таблицу (чтобы ячейки отображались снова) и скрыли индикатор активности.

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