Iphone 用核心数据实例化自定义对象
当前每当我想保存名为Iphone 用核心数据实例化自定义对象,iphone,ios,objective-c,core-data,magicalrecord,Iphone,Ios,Objective C,Core Data,Magicalrecord,当前每当我想保存名为List的自定义对象时,我都会使用 (核心日期+) List*List=[List MR_createInContext:_managedObjectContext] 现在我想知道是否可以像这样实例化一个列表项 List *localList = [[List alloc] init]; // set some properties localList.name = @"foobar"; List *newList = [List MR_createInContext:_m
List
的自定义对象时,我都会使用
(核心日期+)
List*List=[List MR_createInContext:_managedObjectContext]代码>
现在我想知道是否可以像这样实例化一个列表项
List *localList = [[List alloc] init];
// set some properties
localList.name = @"foobar";
List *newList = [List MR_createInContext:_managedObjectContext];
newList = locaList
这会导致核心数据/内存问题吗?因为您已经定义了列表
,所以很难说您在这两种情况下是否正确创建了列表
实例。至少你的代码泄漏了你创建的第二个列表
,而且似乎该代码不太可能像你认为的那样
您的代码相当于:
List *localList = [[List alloc] init];
// set some properties
localList.name = @"foobar";
List *newList = localList;
不,有几个原因:
不能对托管对象使用init
。指定的初始值设定项是initWithEntity:insertIntoManagedObjectContext:
。NSEntityDescription
上还有一个方便的构造函数,名为insertNewObjectForEntityForName:inManagedObjectContext:
。如果你不使用其中一个,你会有问题的
分配newList=localList
时,您会丢弃localList
中的上一个对象及其所有数据。在这一点之后剩下的就是您最初分配给newList
的那一个。例如,您对localList.name
的赋值将随localList
对象一起消失
每次只从核心数据读取并更正我的属性有意义吗?我只是觉得那会占用大量内存,不是吗?如果这不起作用,你能解释一下使用这个方法吗:List
是OP的类——我们不知道它的init
方法可能做什么。