Objective-C - Передача NSManagedObject с одной страницы на другую? - PullRequest
1 голос
/ 14 ноября 2011

Допустим, на странице A у меня есть массив NSManagedObjects, пользователь выбирает ячейку, и я перехожу к новому UIViewController для отображения более подробной информации о выбранном NSManagedObject.

newViewController.myManagedObject = selectedManagedObject;
[self.navigationController pushViewController:newViewController animated:YES];
[newViewController release];

Обычно я бы назначил свойство для переданного объекта, чтобы назначить, потому что я являюсь владельцем NSObject? Относится ли это к NSManagedObjects, поскольку владелец Core-Data, а не я? Должно ли свойство для этого NSManagedObject быть retain или assign?

1 Ответ

2 голосов
/ 14 ноября 2011

DetailViewController должен сохранять объект.

Более одного объекта может быть владельцем другого объекта.Представьте, что вы являетесь владельцем поводка, а не владельцем собаки, привязанной к поводку.Так много людей могут прикрепить поводок к собаке, и как только все люди отсоединили свой поводок, собака свободна и больше не имеет владельца.

В вашем сценарии основные данные могут освободить объект (отсоединить его поводок).), пока ваш код удерживает объект (на привязи прикреплен), объект не будет освобожден (собака не может убежать).

...