Есть несколько готовых абстракций, но большинство из них сосредоточены на XMLRPC, который имеет тенденцию становиться немного неуклюжим.
Ваш лучший выбор - написать NSXMLParserDelegate
, что достаточно просто; а затем просто создайте свой парсер, используя -initWithContentsOfURL:
. С помощью этого метода загрузка файлов XML и их анализ становятся одним шагом; и вы создаете свои структуры данных, как вы идете. Преобразование в элементы пользовательского интерфейса происходит с помощью обычных механизмов абстракции (dataSource и делегат).
Это освобождает вас от ограничений, накладываемых извне XML-схемой, но предполагает, что ваши XML-файлы относительно легкие, или может быть (существенная) задержка интерфейса. Может быть целесообразно загружать XML в отдельном потоке и перезагружать интерфейс по мере того, как становится доступным больше данных (хотя и не слишком часто), особенно если файлы имеют размер более пары КиБ каждый.
Редактировать: Несколько замечаний: В целом вы хотите избегать UIWebView, если вы делаете что-то даже удаленно сложное. Это не так быстро, как встроенные элементы управления, и внешний вид конечных приложений обычно немного невелик.
Кроме того, для меня это звучит так, как будто вы хотите более или менее приложение типа XML-file => UITableView
или, по крайней мере, нечто концептуально похожее. Это действительно легко построить; самая сложная часть - это определить формат XML, который содержит информацию, которую вы хотите, не раздутый. На самом деле, я бы порекомендовал вам начать там; просто потребитель XML и контроллер навигации; использование этого в качестве отправной точки должно позволить вам убедиться, что ваша структура нормальна и файлы не слишком большие; что приводит нас к другой проблеме с использованием UIWebView:
Вы не можете контролировать кеширование, особенно если вы обрабатываете или получаете файлы с помощью JS. Это хорошо для большинства веб-браузеров, где WebKit обычно делает правильные вещи, особенно когда сталкивается с нормальными настройками веб-сервера (ну, не фактическими настройками, а практическими результатами конфигурации: разумными заголовками).
Когда вы используете пользовательский анализатор и систему кэширования, вы получаете большую степень контроля и множество приемов, которые вы можете использовать, чтобы гарантировать, что вы никогда не загрузите больше, чем вам, строго говоря, нужно.