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

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

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

Я попытался сбросить свои pLists с .description, чтобы попытаться просто скопировать и вставить их в файл Xcode .plist. Но pList.description выводит в формате

Problem8 = {
Term1 = 3;
};

В то время как файлы Plist в Xcode требуют такого формата, как

<key>Problem8</key>
<string>3</string>
<key>Term1</key>

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


person SafeFastExpressive    schedule 12.12.2013    source источник
comment
Одна проблема с сгенерированными данными заключается в том, что я не могу регенерировать их для пользователя, так как у них есть некоторые случайные значения, которые сделают их другими при регенерировании. Я хочу, чтобы этот набор данных был одинаковым для каждого пользователя (данные описывают вводные уровни для игры), поэтому мне нужно включить эти данные в виде файла или pList/и т. д. при установке.   -  person SafeFastExpressive    schedule 12.12.2013


Ответы (1)


Если у вас есть словарь, используйте writeToFile:atomically:, чтобы сохранить его в файл, и initWithContentsOfFile:, чтобы снова загрузить его.

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

person Wain    schedule 12.12.2013
comment
Я понимаю, как это сделать. Но как мне сделать этот файл частью моего установочного пакета для моего приложения в Xcode, чтобы он был включен в мое приложение/дистрибутивы TestFlight/и т. д.? - person SafeFastExpressive; 12.12.2013
comment
Добавьте файл в фазу сборки файлов копирования (подобно тому, как изображения добавляются в сборку). - person Wain; 13.12.2013
comment
Итак, если я правильно понимаю, я запускаю приложение на своем устройстве/симуляторе, генерирую файл в его локальную песочницу и использую органайзер для загрузки копии в файловую систему моего Mac и копирую файл данных оттуда в мой проект? Спасибо за ваши комментарии, очень ценю, что вы нашли время, чтобы помочь мне в этом. - person SafeFastExpressive; 13.12.2013
comment
да. Или у вас может быть настольное приложение, которое вместо этого генерирует файл. Если приложение может его сгенерировать, то зачем развертывать с помощью большого файла? - person Wain; 13.12.2013