Как сделать поверхностную копию NSManagedObject, когда контексты объектов различаются? - PullRequest
0 голосов
/ 08 августа 2011

Я реализую «дубликат» функциональности в моем приложении iOS. Я использую следующий рабочий процесс:

  1. представить список управляемых объектов в начальном контексте в корневом контроллере представления
  2. когда пользователь нажимает на строку, создайте новый контекст и передайте его в контроллер подробных представлений с дублированным управляемым объектом ([[DetailController alloc] initWithObject:clonedObject inContext:newContext]).

Однако я борюсь с концепцией переназначения отношений от исходного объекта к клонированному, поскольку контексты их управляемого объекта различаются. Какой будет правильный подход к этому:

  1. Должен ли я просто переназначить значение указателя и не беспокоиться о MOC или ...
  2. Должен ли я обновить значения в новом контексте в зависимости от их уникальных идентификаторов?
  3. Какой-нибудь другой вариант, о котором я не подумал?

P.S. Контексты используют один и тот же постоянный координатор хранилища.

1 Ответ

1 голос
/ 08 августа 2011

Идентификаторы управляемых объектов являются потокобезопасными.Таким образом, вы можете передать идентификатор управляемого объекта в MOC в вашем контроллере представления, извлечь этот объект через существующий идентификатор объекта: ошибка, а затем выполнить дублирование в этом контексте.Таким образом, объекты никогда не пересекают границы MOC.

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