Создание гигантского раскрывающегося меню iOS из XML-источника.Решат ли Core Data мои проблемы с загрузкой SQLite? - PullRequest
0 голосов
/ 23 июля 2011

Основным содержимым моего приложения для iPhone является гигантское раскрывающееся меню.

Данные поступают из XML-документа (это файл размером 1,2 МБ).

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

Помещение в базу данных SQLite и загрузка меню при запуске приложения не работает.Время ожидания 15 минут.

В этом посте - Базовые данные "Upsert" из базы данных SQLite - кто-то писал, что "типично преобразовывать все ваши данные в Core Data во время разработки, а затем поставлять приложение спредварительно заполненное хранилище базовых данных (пользователю не нужно ждать импорта). "

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

Но, учитывая размер данных, кажется, что эта стратегия несостоятельна.

Я видел хорошие вещи, написанные о Core Data здесь.Это решит проблему?Я просто хочу избежать любого времени загрузки.Если это означает обновление меню с помощью обновлений приложения - предварительное заполнение базы данных - пусть будет так.

Спасибо за любые указатели в правильном направлении.

Дополнительная информация: Ниже приведен формат моего XML.Выбор любого конкретного дочернего элемента в родительской категории меню приведет к выводу программой 1 из 6 значений (в зависимости от кнопок, выбранных пользователем).Вот почему XML такой большой.

<item style="TEXTStyle4">
<value>PARENT CATEGORY NAME
<value/>
<value/>
<value/>
<value/>
<value/>
<item style="TEXTStyle5">
<value>Child 1 Pick A</value>
<value>Child 1 Pick B</value>
<value>Child 1 Pick C</value>
<value>Child 1 Pick D</value>
<value>Child 1 Pick E</value>
<value>Child 1 Pick F</value>
</item>

1 Ответ

0 голосов
/ 25 июля 2011

Возможно, есть несколько решений, которые могли бы работать. Трудно быть уверенным без дополнительной информации и некоторого тестирования.

Во-первых, как указывает jrtc27, возможно, вы могли бы загрузить меню отдельно (вы могли бы использовать много отдельных небольших файлов XML)?

В противном случае вы не будете знать наверняка, пока не попробуете, но предварительно заполненная база данных Core Data может решить все ваши проблемы. Это может потребовать некоторой реструктуризации вашей модели данных или нет.

Являются ли шестинедельные обновления значительными изменениями? Если нет, вы сможете выдать их через веб-сервис, обновив небольшие XML-файлы ИЛИ базу данных Core Data.

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