【发布时间】:2011-12-08 21:23:18
【问题描述】:
我在 UI 线程中有一个主要的托管对象上下文 (MOC),它通常由工作线程更新。工作正常!
但是,我有一个视图,我在 UI 线程中创建了另一个 MOC(称为 editingMOC)。我在editingMOC中通过objectID读取了myObject。之后我在editingMOC中对对象myObject进行了一些修改。如果用户点击cancel,会发生以下情况:
[self.editingMOC reset];
myObjectEdit = [self.editingMOC existingObjectWithID:myObject.objectID error:NULL];
难道不应该将myObjectEdit 恢复到以前的状态吗?我没有调用保存。尽管如此,myObjectEdit 仍然有我的变化。知道可能出了什么问题吗?
谢谢!
更新:
显然myObjectEdit 的刷新是正确的(感谢 Mark Adams)。我追踪到这个奇怪的行为:
// RESET VALUE - OK
NSLog(@"%@", myEditObject);
self.tableView.userInteractionEnabled = NO;
// OLD VALUE AGAIN - WRONG
NSLog(@"%@", myEditObject);
我没有对userInteractionEnabled 进行任何更改。这种方法有没有文档中没有说明的副作用?
【问题讨论】:
标签: ios uitableview core-data restore nsmanagedobjectcontext