Я показываю RSS-каналы в своем табличном представлении. так как есть сотни каналов, поэтому моему приложению требуется много времени для их загрузки и отображения, я хочу загрузить только первые 25 каналов и отобразить их в виде таблицы, а когда пользователь нажмет «Дополнительно 25», приложение загрузит следующие 25 и отобразит их. Любая идея......... :) Я использую TouchXML для анализа XML-канала.
Как отображать данные из RSS-канала частями в приложении Iphone
Ответы (3)
Это зависит от веб-сервиса, который предоставляет вам RSS-канал. Если вы можете запросить у них загрузку только 25 фидов, то серверная часть в порядке.
Теперь клиентская сторона, вам нужен UITableView, как обычно. В методе делегата numberOfRows
вы возвращаете 25 (также необходимо +1 для последней ячейки) и показываете первые 25 каналов. В нижней части таблицы последняя ячейка может быть ячейкой с текстом «Загрузить еще», тогда здесь вы начали загружать больше
Вы также можете поместить загрузку и анализ RSS-канала в поток, это повысит вашу производительность.
При синтаксическом анализе, если вы столкнетесь с фидом, сохраните его в массиве... если количество массивов равно 25, отобразите его в виде таблицы, продолжите синтаксический анализ, если пользователь нажмет кнопку «Дополнительно», отобразите следующие 25 элементов в массиве для просмотра таблицы.
как сказал водкханг, используйте поток, если хотите повысить производительность.
Взгляните на пример SeixmicXML и образец кода LazyTableImages на веб-сайте разработчиков Apple. Они используют многопоточность (NSOperation) для анализа пакетов данных и загрузки их в табличное представление.