加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 02:58:52 所属栏目:百科 来源:网络整理
导读:我在应用程序代理级别实例化一个NSManagedObjectContext对象,并在所有的UIViewControllers中共享它.以下是我在其中一个视图控制器中访问它的代码: NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext; modelObj = (Model *)
我在应用程序代理级别实例化一个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)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读