让我们在页面A中说我有一个NSManagedObjects
数组,用户选择一个单元格,然后导航到一个新的UIViewController以显示有关所选NSManagedObject的更多细节。
newViewController.myManagedObject = selectedManagedObject;
[self.navigationController pushViewController:newViewController animated:YES];
[newViewController release];
通常我会将传递对象的属性设置为assign,因为我是NSObject的所有者?
这是否适用于NSManagedObjects,因为所有者是Core-Data而不是我?
此NSManagedObject的属性应该是retain
还是assign
?
答案 0 :(得分:2)
DetailViewController应该保留该对象。
多个对象可以是另一个对象的所有者。想象它是皮带的所有者而不是附着在皮带上的狗的主人。很多人都可以在狗身上系上皮带,一旦所有人都脱掉了皮带,狗就会自由,不再拥有主人了。
在你的场景中,核心数据可以释放对象(分离它的皮带),只要你的代码保留了对象(在皮带附加),对象就不会被释放(狗不能逃跑)