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