我正在使用以下代码从核心数据库中获取数据。但是,当我在当前视图上推动另一个视图控制器并更改任何文本字段上的某些文本并单击取消按钮而不保存/更新文本到DB中。单击取消按钮后,我弹出此视图控制器,然后从viewDidApear方法再次调用此方法然后编辑的文本来自以下方法。但我没有将该文本保存/更新到数据库中。
-(Notes *)fetchSpecificNoteWithNoteID:(NSString* )noteID
{
NSEntityDescription *roomObj = [NSEntityDescription entityForName:@"Notes"
inManagedObjectContext:[[self appDelegate] managedObjectContext]];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSError *error = nil;
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"notesID=%@",noteID];
[request setPredicate:predicate];
[request setEntity:roomObj];
NSArray *array = [[[self appDelegate] managedObjectContext] executeFetchRequest:request error:&error];
if ([array count] && array) {
return [array objectAtIndex:0];
}
return nil;
}
答案 0 :(得分:2)
对托管对象的更改会自动“保存”在上下文中。您需要进行的唯一手动保存是将其写入后备存储。
在某处您在托管对象上设置新值。如果要取消此操作,则需要以某种方式回滚更改。