objective-c – CoreData:清除NSManagedObjectContext中的更改
我在应用程序代理级别实例化一个NSManagedObjectContext对象,并在所有的UIViewControllers中共享它.以下是我在其中一个视图控制器中访问它的代码:
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext; modelObj = (Model *) [NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:[appDelegate managedObjectContext]]; 现在在这个屏幕上,我有一个UITableView 9行&每个单元格都有一个UITextField.当用户将值输入到文本字段中时,我将它们分配给modelObj.现在,我的用户可以选择取消并丢弃所有更改或将其保存到磁盘.我有保存代码正常工作.但是在用户尝试丢弃更改的情况下,我不知道该怎么办.似乎没有一个[managedObjectContext discardChanges]方法将它们全部丢弃. 我可以想到解决这个问题的几种方法. >为每个控制器创建一个NSManagedObjectContext的新实例,而不是跨应用程序共享一个. 哪个方式是正确的?还是有办法让NSManagedObjectConext丢弃所有的修改呢? 谢谢, 解决方法
NSManagedObjectContext有一个简单的方法:
[managedObjectContext rollback]; 此方法“从撤消堆栈中删除所有内容,丢弃所有插入和删除,并将更新的对象还原到其最后提交的值. (documentation) 除非我错过了一些事情,否则应该给你所需要的一切. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |