objective-c – CoreData:清除NSManagedObjectContext中的更改

前端之家收集整理的这篇文章主要介绍了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的新实例,而不是跨应用程序共享一个.
>或者,我可以在我的代码中创建一堆NSStrings,并在其中保存用户值,并调用insertNewObjectForEntityForName:只有当用户单击保存时.

哪个方式是正确的?还是有办法让NSManagedObjectConext丢弃所有的修改呢?

谢谢,
Teja公司.

解决方法

NSManagedObjectContext有一个简单的方法
[managedObjectContext rollback];

方法“从撤消堆栈中删除所有内容,丢弃所有插入和删除,并将更新的对象还原到其最后提交的值. (documentation)

除非我错过了一些事情,否则应该给你所需要的一切.

猜你在找的C&C++相关文章