Должны ли обратные отношения CoreData быть представлены как сохраненные свойства? - PullRequest
3 голосов
/ 30 октября 2011

У меня есть две сущности (сессия и пользователь). Объект сеанса имеет отношение loggedInUser к объекту пользователя. И объект пользователя имеет обратную связь сеанса к объекту сеанса.

Xcode генерирует свойства с атрибутом retain для прямых и обратных связей. Это нормально с точки зрения графов объектов? Насколько я понимаю, обратная связь должна быть представлена ​​как свойство assign.

Кроме того, в редакторе схемы не видно, какое отношение является основным (т.е. loggedInUser имеет сеанс в качестве своего обратного, а обратный сеанс - loggedInUser).

Может быть, я что-то упустил?

Спасибо.

1 Ответ

2 голосов
/ 30 октября 2011

На самом деле не объясняет, почему так, но документы Apple для Основные данные состояние

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

Итак, прочитав, что даже если вы установили отношение как assign, оно будет рассматриваться как retain

...