2010-06-09 2 views
2

Я видел много приложений, которые загружают данные в UITableViews из Интернета, и они обычно загружаются плавно. Теперь моя очередь загружать такие данные. Я получаю разные данные одновременно, разделяя категории с ~ и кусочками категорий с #. Это отлично работает, и мне удалось отлично отделить данные в obj-c.UITableView - Загрузка данных из Интернета

Все в моем приложении работает, просто загрузка занимает много времени.

Итак, я думаю, что реальный вопрос: как вы можете загружать данные для таблицыView в фоновом режиме, отображая метку/UIActivityView или что-то во время загрузки?

спасибо.

ответ

1

Самый простой способ - добавить временную ячейку, которая показывает какой-то ход загрузки (ярлык с текстом «Загрузка ...», или идентификатор UIActivityIndicator и т. Д.). Когда ваши данные будут загружены, удалите эту ячейку и добавьте фактические ячейки с вашими данными.

Чтобы загрузить данные 'в фоновом режиме', я бы порекомендовал взглянуть на NSURLConnection. Это позволяет вам неявно загружать данные асинхронно, поэтому вам не нужно иметь дело с потоками.

+1

У меня есть много манипуляций со строкой после того, как я ее получу, поэтому я нашел, что лучше всего поставить это в селектор и сделать '[self performSelectorInBackground: selector]'. Итак, на самом деле я хочу знать, как я могу получить информацию, когда каждый процесс из селектора будет выполнен. – Emil

+2

В вашем методе выбора вы можете вызвать performSelectorOnMainThread: withObject: waitUntilDone: когда процесс завершен, который вызовет другой метод выбора в основном потоке. Поэтому в основном вы вручную вызываете основной поток, когда ваш дочерний поток работает, чтобы сообщить об этом. – nebs

+1

Мне очень жаль, что я не могу отдать все свои очки Небсу! Ваш комментарий помог мне решить вопрос, который я возглавляю. Спасибо МНОГО! – changelog

0

Я не понимаю ваш вопрос. Почему вы не используете UIActivityIndicator для показа загрузки. Вы можете сделать это со своего пиджака или программно. Возможно также, что вы можете загрузить содержимое из Intenet с помощью NSXMlParsing, которое будет много quiker и покажет активность indiacator, пока вся дата не разобратся и не заполнит таблицу полностью сразу.

Ответьте, если вы это получили.

Смежные вопросы