Копирование файлов iPhone CoreData из одного проекта в другой - PullRequest
5 голосов
/ 13 июля 2009

Я пытаюсь создать 2 приложения: одно, которое создает постоянное хранилище, и другое, которое его использует.

До сих пор я создал одно приложение, которое использует CoreData для успешного построения базы данных из файла XML. Таким образом, этот проект содержит модель данных, файлы .h / .m для сущностей и т. Д.

Сейчас я пытаюсь включить второе приложение для чтения этого файла .sqlite путем копирования файла модели данных, файлов .h / .m, связанных с сущностями, и файла sqlite в этот проект (через добавление существующего).

Код выполняется, но всегда не может найти объекты в базе данных.

Существуют ли какие-либо ограничения или правильные действия при копировании этих файлов?

Ответы [ 5 ]

3 голосов
/ 19 июля 2009

Решение здесь обманчиво просто.

Просто скопируйте файл .xcdatamodel из одного проекта в другой, а затем, когда вы впервые запустите свое приложение в симуляторе, оно создаст папку «Документы» для приложения. Просто поместите свои сохраненные файлы .sqlite или .binary в каталог yourApp / Documents на устройстве. Вы можете найти каталог симулятора в «~ user / Library / Application Support / iPhone Simulator».

Вы также можете загружать, редактировать и загружать каталог myApp на подготовленном iPhone, перетаскивая его в Организатор и из него. Посмотрите на список приложений.

iPhone не поддерживает XML-хранилища с основными данными, только sqlite или атомарные (двоичные). Хранилище sqlite, безусловно, является лучшим вариантом для большинства приложений, поскольку не все должны быть загружены в память во время выполнения.

Ты это имел ввиду?

0 голосов
/ 01 февраля 2012

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

0 голосов
/ 13 июля 2009

Я не думаю, что это сработает так, как вы этого хотите. На iPhone каждое приложение запускается в своей «песочнице», и одно приложение не может написать файлы, которые может прочитать другое.

0 голосов
/ 13 июля 2009

Это действительно два разных проекта или две цели в одном проекте? Казалось бы, это имеет больше смысла, и тогда вы можете делиться объектами по мере их изменения.

0 голосов
/ 13 июля 2009

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

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