问题是,像往常一样,有一个Save按钮和一个Cancel按钮.如果用户点击保存,则保存NSManagedobjectContext,并反映更改.但是,如果用户点击取消,我需要该对象恢复到之前的状态.调用[managedobjectContext rollback]不能用于此目的.
有谁知道如何正确实现这个?我无法在编辑过程中将对象的属性存储为临时单独的ivars,因为有多个对象可以编辑,所有对象都具有不同的属性.
更新
我目前正在做的是将NSManagedobject存储在一个实例变量中,并调用save:来保存并回滚取消.使用object.property = something或[object setValue:something forKey:@“property”]修改实例变量.这不会按预期工作,而是产生此行为:
>如果编辑并保存,更改将按预期更新.但是,如果再次编辑并取消而不进行更改,则对象的状态将恢复为保存之前的状态.
>如果编辑和取消,更改仍会更新,就像保存一样.再次编辑和取消(不进行更改)将使其恢复到之前的状态.
也:
这与我初始化用于填充表视图的NSFetchedResultsController的方式有什么关系吗?码:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];Nsstring *entityname = self.entityname;NSEntityDescription *entity = [NSEntityDescription entityForname:entityname inManagedobjectContext:self.context];[fetchRequest setEntity:entity];NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];[fetchRequest setIncludesPendingChanges:NO];NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedobjectContext:_context sectionnameKeyPath:nil cachename:@"Root"];self.fetchedResultsController = theFetchedResultsController;_fetchedResultsController.delegate = self;解决方法 看 @L_419_0@.这对您有帮助. 总结
以上是内存溢出为你收集整理的iphone – CoreData保存/恢复未保存的更改全部内容,希望文章能够帮你解决iphone – CoreData保存/恢复未保存的更改所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)