2011-01-21 4 views
2


Я новичок в coredata, поэтому, может быть, можно сказать, что если я планирую иметь смысл или если есть еще одна лучшая практика, чтобы это сделать, так: В основном я строию 2 приложения: один получает данные из разных источников, объединяет их и превращает их в базовую базу данных данных. Поскольку это занимает свое время, я хочу, чтобы это выполнялось один раз в симуляторе в отдельном приложении.обмен данными с базой данных между двумя приложениями для iPhone

Другое приложение будет поставляться с данными (и датамоделями) Итак: два приложения, совместно использующие datamodel (и пользовательские классы управляемых объектов) и файл sqlite.

Я не хочу, чтобы восстановить DataModel во втором приложении и держать два в синхронизации вручную, конечно - так:

Как мне это сделать?
Просто добавив пользовательские классы и файл .xcdatamodel в другой проект (без копирования) и изменив имена файлов в методах managedObjectModel и persistentStoreCoordinator в приложении Delegate, чтобы обработать имя файла файла datamodel из первого приложения?

звучит немного странно для меня ...

заранее спасибо.

ответ

3

Если вы используете только ресурсы во время разработки, в Xcode, то да, вы сможете делиться одними и теми же ресурсами CD между проектами Xcode. Просто убедитесь, что при добавлении файлов в новый проект снимите отметку с «копировать элементы в папку целевой группы», но кроме того, это не так уж сложно настроить, чтобы все работало правильно.

Если вы говорите о совместном использовании ресурсов CD во время выполнения на iPhone, это невозможно, как заявил в своем ответе @ Björn.

+0

, спасибо за разъяснение - я просто думаю о совместном использовании. – HeikoG

+0

Внимание: при добавлении новой версии модели в один проект она не будет добавляться автоматически в другую. Вам придется удалить хранилище из второго проекта и перетащить его обратно во второй проект из поисковика. – jpalten

+0

Исправьте меня, если я ошибаюсь, но теперь вы сможете обмениваться данными через группы приложений. –

1

Каждое приложение запускается внутри собственной песочницы, нет никакого способа обмена данными между приложениями, не помещая между ними какого-то «среднего человека», чтобы синхронизировать их (например, веб-сервер).

+0

ах. нормально кажется, мой вопрос был ошибочным. Я хочу участвовать во время разработки, а не во время выполнения. Я хочу объединить данные и использовать один и тот же datamodel для удаления второго приложения. поэтому, когда я что-то меняю в базе данных первого приложения, мне не нужно ничего обновлять во втором приложении – HeikoG

Смежные вопросы