Сохраните NSManagedObjectID в CoreData - PullRequest
2 голосов
/ 30 июля 2011

У меня есть xcdatamodel с набором сущностей, встроенных в статическую библиотеку.

Я включил эту статическую библиотеку в проект. Я хотел бы создать другую модель в основном проекте, с сущностью с именем Task. Я хотел бы иметь атрибут в объекте, где я мог бы хранить NSManagedObjectID объекта, созданного в статической библиотеке. С NSManagedObjectID я мог легко получить главный магазин и получить сущность. В конце может быть много сущностей Task, ссылающихся на objectID.

Возможно ли это? Я также понимаю, что это звучит как реляционная модель, а не Core Data, так есть ли лучшее решение для работы с предметом?

спасибо

Ответы [ 2 ]

9 голосов
/ 30 июля 2011

NSManagedObjectID сам по себе не соответствует кодированию.Но вы можете получить представление URL идентификатора объекта и сохранить его.Например:

myObject.externalTaskURL = [[task objectID] URIRepresentation];

Затем, чтобы вернуть идентификатор объекта для получения объекта задачи, к которому он обращается позже (psc - это ваш NSPersistentStoreCoordinator, в котором живут Task сущности):

NSManagedObjectID* taskID = 
        [psc managedObjectIDForURIRepresentation:myObject.externalTaskURL];

Обязательно никогда делать это с временным идентификатором управляемого объекта.

0 голосов
/ 30 июля 2011

Вы можете сохранить идентификатор управляемого объекта как NSURL в преобразуемом атрибуте.

...