Я опытный разработчик, но новичок в Mac. Я просто не хочу идти по одному пути, только чтобы узнать, что позже допустил фундаментальную ошибку или неверное предположение.
Я хочу в конечном итоге создать и продать приложение для iPhone с использованием Core Data. Приложение будет бесплатным с контентом, доступным через покупку в приложении. Вот что я хочу сделать:
ВАРИАНТ 1
- Создайте служебное приложение Mac OS X, которое указывает на ту же объектную модель Core Data, но имеет собственную «основную» базу данных.
- Заполните основную базу данных с помощью приложения Mac.
- Экспорт подмножества основных данных из приложения Mac в плоский файл (XML?), Который является подмножеством основных данных.
- Когда пользователь приобретает эти данные, загружает их из облака и импортирует эти данные в локальное хранилище данных iPhone.
Номер 2 должен быть достаточно легким. Я читал об XML-парсере, который должен помочь мне с # 4. Мне нужна помощь с № 1 и 3.
Для # 1 я не могу понять, как я могу поддерживать одну объектную модель для обоих приложений с XCode. Эта модель данных должна принимать управление версиями модели. Должен ли я просто создать два проекта, один Mac и один iPhone, и указать им обоим один и тот же файл .xcdatamodel, и магия случится со мной?
Для # 3, есть ли пример кода, которым кто-то может поделиться, который будет перебирать массив объектов для создания XML?
ВАРИАНТ 2
Другой вариант, который я рассматриваю, обсуждался ниже. Вместо того, чтобы беспокоиться об импорте / экспорте, просто создайте отдельные файлы sql для каждого набора новых или обновленных данных.
Я мог бы поддерживать отдельную базу данных «метаданных», которая содержит информацию об отдельных файлах sql, доступных для приложения.
Затем я могу динамически получать доступ к отдельным файлам SQL из локального каталога документов. Это похоже на модель iBooks, где файлы sql равны отдельным книгам.
Я думаю, что я мог бы иметь только два активных подключения к базе данных одновременно ... одно для метаданных, а другое для конкретной "книги". Однако я не уверен, что это масштабируется до многих (десятков или сотен) файлов sql.
Любая помощь приветствуется!
Jon
ОБНОВЛЕНИЕ : Я только что увидел ответ от Маркуса Зарры в:
Удаление и добавление постоянных хранилищ в основное приложение данных
Похоже, вариант 2 - плохая идея.