Настраиваемый параметр для отношения основных данных для принудительной обратной взаимосвязи

#iphone #ios #core-data #entity-relationship #nsmanagedobject

#iPhone #iOS #core-data #сущность-взаимосвязь #nsmanagedobject

Вопрос:

Я хочу создать пользовательский установщик для отношения NSManagedObject core data «один ко многим» (Object.related), чтобы при добавлении объекта A в B.related B автоматически добавлялся в A.related, и если A удаляется из B.related, B автоматически удаляется из A.related. Раньше мне удавалось создавать пользовательские установщики для базовых свойств (таких как свойства NSString и NSNumber), но это вызывает у меня некоторую головную боль. Когда вызывается моя функция -(void)setRelated:(NSSet*)newSet , кажется, что свойство Self.related уже установлено в списке newSet! Какова наилучшая практика здесь? Я также изучал это свойство с помощью didChangeValueForKey:(NSString *)inKey withSetMutation:(NSKeyValueSetMutationKind)inMutationKind usingObjects:(NSSet *)inObjects , но не смог заставить его работать должным образом.

Ответ №1:

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

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

Комментарии:

1. Билл, спасибо за твой ответ, возможно, я не совсем ясно выразился, но A и B — это объекты одного и того же типа. Итак, когда я добавляю A к B.related, B автоматически не является частью A.related.

2. У вас должно быть 2 самореферентных отношения, одно к другому, во многих случаях они обратны друг другу, точно так же, как это работало бы для A ->> B.