Tej*_*udi 11 core-data objective-c ios
我正在NSManagedObjectContextApplication委托级实例化一个对象并在我UIViewController的所有s上共享它.这是我用于在我的一个View Controllers中访问它的代码:
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
modelObj = (Model *) [NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:[appDelegate managedObjectContext]];
Run Code Online (Sandbox Code Playgroud)
现在在这个屏幕上,我有一个UITableView9行,每个单元格有一个UITextField.当用户将值输入到文本字段中时,我将它们分配到modelObj.现在,我的用户可以选择取消并放弃所有更改或将其保存到磁盘.我有保存代码正常工作.但是在用户试图放弃更改的情况下,我不知道该怎么做.似乎没有[managedObjectContext discardChanges]办法将它们扔掉.
我可以想出几种方法来解决这个问题.
NSManagedObjectContext为每个控制器创建一个新实例,而不是在整个应用程序中共享一个实例.NSString在我的代码中创建一堆s并在其中保存用户值,并insertNewObjectForEntityForName:仅在用户单击save时调用.哪种方式合适?或者有没有办法NSManagedObjectConext放弃对它做出的所有改变?
谢谢,
Teja.
Tim*_*ean 39
NSManagedObjectContext有一个简单的方法:
[managedObjectContext rollback];
Run Code Online (Sandbox Code Playgroud)
此方法"从撤消堆栈中删除所有内容,放弃所有插入和删除,并将更新的对象恢复为其上次提交的值." (文件)
除非我遗漏了某些东西,否则它应该能为您提供所需的一切.
| 归档时间: |
|
| 查看次数: |
6705 次 |
| 最近记录: |