Пользовательский установщик для отношения Core Data, чтобы установить обратную, взаимную связь

Я хочу создать настраиваемый установщик для отношения «один ко многим» основных данных NSManagedObject (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, но не смог заставить его работать должным образом.


person Jason    schedule 26.04.2011    source источник


Ответы (1)


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

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

person Bill Dudney    schedule 26.04.2011
comment
Билл, спасибо за ответ, возможно, я не совсем ясно выразился, но А и Б — это объекты одного типа. Поэтому, когда я добавляю A к B.related, B не становится автоматически частью A's A.related. - person Jason; 27.04.2011
comment
У вас должно быть 2 самореферентных отношения: одно toOne, другое toMany, тогда они обратны друг другу, точно так же, как это будет работать для A -> B. - person Bill Dudney; 27.04.2011