我在我的应用程序中有一个简短的设置过程,我创建了一个 NSManagedObject 来存储个人的姓名和其他详细信息,但是在此设置期间,我不想保存对象,直到用户在结束时按下“完成”设置(以防他们出于任何原因取消设置)。
那么是否可以在不实际将其保存到CoreData中的情况下将持有我的信息的对象保持一小段时间直到设置过程结束?
我在我的应用程序中有一个简短的设置过程,我创建了一个 NSManagedObject 来存储个人的姓名和其他详细信息,但是在此设置期间,我不想保存对象,直到用户在结束时按下“完成”设置(以防他们出于任何原因取消设置)。
那么是否可以在不实际将其保存到CoreData中的情况下将持有我的信息的对象保持一小段时间直到设置过程结束?
你也可以使用
NSEntityDescription *ed = [NSEntityDescription entityForName:@"YourManagedObject" inManagedObjectContext:managedObjectContext];
YourManagedObject *obj = [[[YourManagedObject alloc] initWithEntity:ed insertIntoManagedObjectContext:nil] autorelease];
创建托管对象而不将其插入到您的上下文中。您可以稍后通过调用[managedObjectContext insertObject:obj];
.
当您处理 CoreData 时,所有添加/修改/删除操作都发生在 NSManagedObjectContext 中 - 但更改不会持久保存到磁盘,直到您对该上下文调用“保存”。
所以答案是肯定的——这是你应该已经得到的行为。如果您正在添加或修改 NSManagedObjects 的属性,这些更改将保存在上下文的内存中,但在您实际调用“保存”之前不会保存到磁盘。