UITableView - загрузка данных из Интернета

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

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

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

Спасибо.


person Emil    schedule 09.06.2010    source источник


Ответы (2)


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

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

person nebs    schedule 09.06.2010
comment
Мне нужно много манипулировать строкой после того, как я ее получил, поэтому я решил, что лучше всего поместить это в селектор и сделать [self performSelectorInBackground:selector]. Итак, на самом деле я хочу знать, как я могу получить информацию, когда каждый процесс из селектора выполнен. - person Emil; 09.06.2010
comment
В вашем методе селектора вы можете вызвать performSelectorOnMainThread: withObject: waitUntilDone: по завершении процесса, который вызовет другой метод селектора в основном потоке. Таким образом, в основном вы вручную вызываете основной поток, когда ваш дочерний поток завершает работу, чтобы уведомить его. - person nebs; 10.06.2010
comment
Я действительно хотел бы отдать все свои очки Небсу! Ваш комментарий помог мне решить возникшую у меня проблему. Большое спасибо! - person changelog; 03.07.2010

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

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

person Rahul    schedule 09.06.2010