CoreData: разные подклассы из общей базовой сущности в разных проектах - PullRequest
0 голосов
/ 18 декабря 2010

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

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

Любые другие идеи, или мысли о моем подходе словаря?Спасибо!

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Одна вещь, которую я не осознавал, когда писал, это то, что вы можете изменять модель программно.Таким образом, я начал делать это в каждом подпроекте, чтобы добавить подраздел с атрибутами, специфичными для проекта.Это решило проблему на некоторое время.

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

Все, что было быно мне пришлось изменить схему БД на более гибкую, используя общие объекты, атрибуты и таблицы значений.Теперь каждый подпроект может просто добавить любые данные для определения нового типа объекта.

0 голосов
/ 24 февраля 2011

У меня были те же вопросы ... У меня есть базовый класс, который определяет атрибуты и функциональные возможности, общие для двух CD-сущностей. Но когда я пытаюсь получить доступ к значению из суперкласса, я получаю сообщение об ошибке.

Вот что я сделал, чтобы решить это.

Создайте модель данных и сгенерируйте классы, как обычно. Создайте вручную суперкласс как подкласс NSManagedObject. Присвойте ему ту же структуру, что и сгенерированные классы, что означает отсутствие объявленных переменных, использование @dynamic, NSNumber * для чисел и т. Д.

Это помогло мне.

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