Что лучше — создавать постоянные хранилища или использовать фиксированные файлы для данных?

#iphone #json #core-data #persistent-storage

#iPhone #json #core-data #постоянное хранилище

Вопрос:

Я создаю прототип простой спортивной симуляторной игры для iPhone, которая будет использовать Core data.

Одна из самых больших проблем, с которой я сталкиваюсь, заключается в том, как в первую очередь перенести данные в Core data.

Вторая по величине проблема заключается в том, должен ли я использовать постоянные хранилища core data или использовать фиксированные файлы (JSON) для предварительно исправленных игровых данных.

Концепция

Общая концепция заключается в том, что проигрыватель может start a new game или continue существующий.

Когда они start new game использовали бы предварительно фиксированные данные. (Т.Е.. База данных, доступная только для чтения.)

Когда они continue game использовали бы другую базу данных (базу данных игры).

Я не уверен, как реализовать такую функцию.

Прототип

В настоящее время я экспериментирую с этим прототипом:

Веб-приложение PHP -> 2. API -> 3. iPhone

  1. Локальное веб-приложение на PHP, которое действует как CMS.

  2. Базовый API, который позволяет мне предоставлять определенные данные в формате JSON.

  3. Прочитайте JSON в Core Data с помощью TouchJSON / других инструментов.

Я не собираюсь делать API общедоступным / онлайновым (по разным причинам), поэтому описанный мной метод предназначен только для одностороннего процесса.

Это, конечно, вызовет проблему, потому что мне нужно сделать данные доступными только для чтения.

В спортивных симуляторах вы часто обнаружите, что они используют фиксированные файлы (.txt, .csv, .dat и т.д.), А затем они считывают эти данные в память или базу данных.

Следовательно, используя эту концепцию, я мог бы:

Сохраните JSON как фиксированные файлы и считайте их во время выполнения в memory / core data.

И тогда всякий раз, когда игрок запускает новую игру, существующее хранилище core data будет просто удалено.


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

Поэтому я думал о настройке 2 постоянных хранилищ;

1) Предварительно установленное постоянное хранилище, доступное только для чтения

2) Само хранилище игр (которое перезаписывается, если вы запускаете новую игру).


Но что лучше?

Создание фиксированных файлов JSON для использования или использование 2 постоянных хранилищ?

Прошу прощения, если мой вопрос / концепция чрезмерно сложны; но я бы приветствовал лучшие / более простые решения, где это возможно.

Ответ №1:

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

Комментарии:

1. Спасибо за ваш комментарий и идею. Core data действительно можно использовать, если он изначально пуст (а если нет, вы можете очистить его при необходимости). Однако меня интересует, лучше ли использовать Core data для выполнения всей тяжелой работы или использовать фиксированный файл для уменьшения нагрузки на память / обработку.

2. Сейчас я работаю с фиксированным файлом json (в документе) на текущее время.