Переназначение отношения один к одному обнуляет предыдущий объект / CoreData iOS - PullRequest
0 голосов
/ 26 февраля 2012

У меня есть 2 лица.ObjectA хранит все объекты ObjectB посредством отношения «многие ко многим».ObjectA также хранит один конкретный объект как объект по умолчанию, используя отношение один к одному.Идея состоит в том, чтобы иметь возможность назначать много разных дочерних объектов для EntityA, сохраняя при этом конкретную ссылку на один конкретный дочерний объект.Эта идея прекрасно работает во всем моем проекте, исключая одно обстоятельство (идентичный код и идентичные установки отношения сущностей.

Проблема, с которой я сталкиваюсь, - это когда я переназначаю существующий defaultObject новому другому объекту просто ObjectA.defaultObject = someObject23;это правильно назначает новый объект, но в процессе моя исходная ссылка отношения To-Many на этот существующий defaultObject становится нулевой.

У отношения ко всем «AllObjects» из EntityA есть правило каскадного удаления для EntityB.-To-One отношение «DefaultObject» имеет правило удаления NULL для Entity B. Для обоих задано обратное.

Вот очень быстрый обзор.

ObjectA.allObjects = 10 objects; // 1 of these is someObject1

ObjectA.defaultSomeObject = someObject1; // This works fine.
ObjectA.defaultSomeObject = someObject2; // This assigns the new defaultSomeObject=someObject2,
// but in the process it removes the someObject1 from my ObjectA.allObjects array (Goes NULL)

Я в тупике, потому что, как и яскажем, я использовал эту технику несколько раз, и единственный обходной путь, к которому мне это удалось, - это «подстроить» ее и фактически сохранить ссылку на предыдущий объект, удалить ее из массива ObjectA, установить новый defaultObject, а затем записать этот объектобратно в массив. Там должно быть простоеобъяснение я пропускаю.Больше кофе?лол.Любая помощь очень ценится.Я пробовал все разные правила удаления для каждого отношения, а также только для ударов.

1 Ответ

0 голосов
/ 27 февраля 2012

Проблема решена.Определенно нужно больше кофе.То, что происходило, было то, что отношения один-к-одному использовали обратное отношение ко-многим, заставляя его делать именно то, что он должен был делать, становиться нулевым ...

...