Как хранить все эти предварительно созданные данные? - PullRequest
0 голосов
/ 29 февраля 2012

В настоящее время я храню некоторые часто используемые массивы и словари в файлах .plist. Тем не менее, дубликаты данных существуют в этих файлах. Вместо этого я хотел бы иметь возможность реализовать что-то более похожее на реляционную базу данных, чтобы хранить ссылки на данные, а не повторять их. Я предполагаю, что нет никакого способа сделать это с файлами plist, но CoreData кажется излишним для этого.

Одна мысль, которую я имел, состояла в том, чтобы создать подклассы NSArray и NSDictionary для предоставления значений по умолчанию. Вместо того, чтобы загружать словарь из файла plist, любой объект, которому нужны данные, вместо этого просто создает один из этих подклассов NSArray / NSDictionary (который, в свою очередь, создает экземпляры других из этих подклассов, когда это необходимо - это то, как функциональность «реляционной базы данных» будет быть достигнутым). Это разумный подход или есть какой-то другой инструмент в iOS или XCode, о котором я не знаю и который сделает это простым?

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Я использовал SQLite в подобных ситуациях.
Вот видео всего, что я узнал об использовании SQLite в приложениях ( класс Stanford ) Я предполагаю, что есть много других доступных примеров.

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

1 голос
/ 29 февраля 2012

Если данные никогда не изменятся, тогда я буду придерживаться вашего текущего подхода, если только у вас нет проблем с производительностью. Другой вариант - переместить все в SQLite, а затем использовать оболочку, такую ​​как FMDB.

Если данные являются исходными данными, которые будут меняться в течение всего жизненного цикла приложения (вам необходимо постоянство между запусками), тогда я бы переключился на CoreData.

Независимо от того, что вы делаете, я бы держался подальше от подклассов NSArray / NSDictionary. Вы можете предоставить значения по умолчанию без подклассов.

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