Список свойств или 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.