Должны ли обратные отношения CoreData быть представлены как сохраненные свойства?

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

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

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

Может я что-то упустил?

Благодарю.

1 ответ

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

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

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

Другие вопросы по тегам