Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSManagedObject子类作为属性的最佳实践_Iphone_Objective C_Ios - Fatal编程技术网

Iphone NSManagedObject子类作为属性的最佳实践

Iphone NSManagedObject子类作为属性的最佳实践,iphone,objective-c,ios,Iphone,Objective C,Ios,因此,当使用NSManagedObject的子类作为我的一个控制器的属性时,我注意到一些奇怪的行为。我理解这些类的实例是由核心数据管理的,不应将它们的生命周期视为普通对象 我的问题是,如果将核心数据对象作为另一个(非核心数据)类的属性,那么最佳实践是什么 我发现为了获得我想要的行为,我必须在获取或创建时保留核心数据对象,然后将属性设置为: @property (nonatomic, assign) MBUser* userProfile; 这是最佳做法还是有其他方法来实现我的目标?我相信如果托

因此,当使用NSManagedObject的子类作为我的一个控制器的属性时,我注意到一些奇怪的行为。我理解这些类的实例是由核心数据管理的,不应将它们的生命周期视为普通对象

我的问题是,如果将核心数据对象作为另一个(非核心数据)类的属性,那么最佳实践是什么

我发现为了获得我想要的行为,我必须在获取或创建时保留核心数据对象,然后将属性设置为:

@property (nonatomic, assign) MBUser* userProfile;

这是最佳做法还是有其他方法来实现我的目标?

我相信如果托管对象的保留计数为0,那么系统将取消分配,因此,您必须保留您的对象,以确保它不会被核心数据系统解除分配…我在txt中没有发现这样写的内容,但我相信这里的核心数据指南暗示了这一点

我相信,如果托管对象的retain计数为0,那么系统将解除分配,因此,您必须保留您的对象,以确保它不会被核心数据系统释放……我在txt中没有发现这样写的内容,但我相信这里的核心数据指南暗示了这一点

好的,这与我所看到的一致。那么,这是否意味着当我在对象X上调用retain时,它是NSManagedObject的一个子类,我也必须调用release?如果你希望它在释放对象上下文之前由系统释放,你可以这样做,但是我认为当你释放对象上下文时,一切都会随之释放..酷,不管怎样,我想当我最终开始分析应用程序时,我会确定的。好的,这与我所看到的一致。那么,这是否意味着当我在对象X上调用retain时,它是NSManagedObject的一个子类,我也必须调用release?如果你希望它在释放对象上下文之前由系统释放,你可以这样做,但是我认为当你释放对象上下文时,一切都会随之释放..酷,不管怎样,我想当我最终开始分析应用程序时,我一定会知道。