Objective-C - 将NSManagedObject从一个页面传递到另一个页面?

时间:2011-11-14 01:59:45

标签: objective-c core-data nsmanagedobject

让我们在页面A中说我有一个NSManagedObjects数组,用户选择一个单元格,然后导航到一个新的UIViewController以显示有关所选NSManagedObject的更多细节。

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

通常我会将传递对象的属性设置为assign,因为我是NSObject的所有者? 这是否适用于NSManagedObjects,因为所有者是Core-Data而不是我? 此NSManagedObject的属性应该是retain还是assign

1 个答案:

答案 0 :(得分:2)

DetailViewController应该保留该对象。

多个对象可以是另一个对象的所有者。想象它是皮带的所有者而不是附着在皮带上的狗的主人。很多人都可以在狗身上系上皮带,一旦所有人都脱掉了皮带,狗就会自由,不再拥有主人了。

在你的场景中,核心数据可以释放对象(分离它的皮带),只要你的代码保留了对象(在皮带附加),对象就不会被释放(狗不能逃跑)