Список свойств или sqlite для статических данных?

Есть ли подход "Лучшая практика" для хранения постоянных статических данных для iPhone-приложений?

У меня есть приложение, которое читает словарь приблизительно из 1000 элементов, многие из которых являются массивами. Я начал использовать один plist для этого, и он стал несколько громоздким, особенно потому, что многие из значений являются строками HTML.

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

Я искал google для iphone data storage и вариантов, но придумал что-нибудь, даже касаясь лучшей практики.

Ответ 1

Похоже, вы намереваетесь распространять некоторые данные с вашим приложением. Список свойств, вероятно, проще всего поддерживать, но он будет загружен в память сразу. Это может привести к большому количеству памяти устройства.

База данных sqlite, с другой стороны, будет загружать только данные, которые вы запрашиваете. Я не уверен, как структурированы ваши данные, но вы могли бы легко создать пары ключ-значение с одной таблицей базы данных. (Одна таблица с столбцом key и столбцом value). Тогда, если бы это был я, я бы написал класс Objective-C для обертывания запросов к базе данных, чтобы я мог писать простые инструкции, например:

NSString *welcomeText = [[MyData sharedData] dataWithKey:@"WelcomeText"];

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

Надеюсь, это заставит вас двигаться в правильном направлении!

Ответ 2

Я бы выбрал решение sqlite. Приложения, над которыми я сейчас работаю, - это просто приложения, которые помогают мне изучать разработку iPhone, в основном все используют sqlite. Я использую плагин sqlite для firefox, чтобы помочь с сохранением базы данных, которая работает на удивление хорошо. https://addons.mozilla.org/en-US/firefox/addon/5817

Как предложил Алекс использовать класс-обертку, лучший способ пойти.

Ответ 3

Не забывайте, что в 3.0 вы можете использовать слой CoreData вокруг SQLlite, который может сделать его более привлекательным для вас.

Ответ 4

Если вам не нужно хранить реляционную информацию о ваших данных, почему бы просто не использовать файлы? Будет некоторое потерянное пространство файловой системы, но простые файлы могут быть наиболее эффективным решением для работы с памятью и процессором в зависимости от размера и количества ваших элементов.

Ответ 5

Я никогда не разрабатывал приложение для iPhone, но я играл в файловой системе. Я видел базы данных sqlite, плавающие в разных местах телефона. Я уверен, что он использует базу данных sqlite для хранения записей календаря.

Ответ 6

Я бы использовал sqlite. Он уже существует, прост в использовании и обеспечит наиболее гибкий путь для расширения в будущем.

Я использую sqlite для статических данных в моих iPhone-приложениях все время.

Ответ 7

Все, что я сделал, - это сохранение состояния, когда приложение закрыто. Я использовал файл для этого.

sqlite отлично подходит для вашего приложения. sqlite довольно легко. Я использовал его в приложениях Adobe AIR.