2011-06-13 29 views
1

所以我注意到一些奇怪的行为,当使用NSManagedObject的子类作为我的控制器之一的属性时。我知道这些类的实例是由核心数据管理的,不应该被视为关于其生命周期的普通对象。NSManagedObject子类作为属性的最佳实践

我的问题是,如果您有核心数据对象作为另一个(非核心数据)类的属性,最佳做法是什么?

我发现,为了得到我想要的行为,我不得不保留核心数据对象时取出或生成,然后设置像这样的属性:

@property (nonatomic, assign) MBUser* userProfile; 

这是最好的做法还是有一些其他的方式来完成我想要的?

回答

1

我相信如果一个托管对象的保留计数为0,那么系统将会释放,因此您必须保留您的对象以确保它不会被核心数据系统解除分配......我还没有找到这个这样写在TXT,但我相信这里的核心数据指南意味着它Link

+0

好吧,这与我所见。那么,这是否意味着当我调用对象X上的保留时,这是NSManagedObject的一个子类,我还必须调用release? – jjm340 2011-06-13 01:55:13

+0

如果你想在释放对象上下文之前让系统释放它,那么你可以释放它,但是我认为当你释放你的对象上下文时,所有的东西都会被释放。 – Daniel 2011-06-13 02:07:19

+0

很酷,无论哪种方式我都会知道当我最终开始分析应用程序。 – jjm340 2011-06-13 16:43:14