撤消托管对象删除
Posted
技术标签:
【中文标题】撤消托管对象删除【英文标题】:Undo managed object deletion 【发布时间】:2015-09-13 12:48:04 【问题描述】:我在 MagicalRecord 提供的默认 MOC 上设置了 NSUndoManager
。
[NSManagedObjectContext MR_defaultContext].undoManager = [[NSUndoManager alloc] init];
当用户在我的表格视图中滑动删除时,我只需删除对象并将更改持久保存到根上下文:
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext)
NSManagedObject *model = [modelFromMainThread MR_inContext:localContext];
[model MR_deleteEntityInContext:localContext];
];
当用户摇动设备以撤消删除时,我只需调用[defaultContext undo]
。
这工作得很好,对象复活,NSFetchedResultsController
将其拾取并添加回表格视图。
但是,当我编辑复活的对象时会出现问题。一旦我保存它,它就会再次消失。
我在这里想念什么让它正常工作吗?
我是否必须将撤消操作保留回根上下文?
【问题讨论】:
是的,一定要坚持。本质上,您应该执行与删除它时相同的操作。 【参考方案1】:当我撤消持久更改时,我应该将对象保存回持久存储,否则该对象将在下次合并时消失。
【讨论】:
以上是关于撤消托管对象删除的主要内容,如果未能解决你的问题,请参考以下文章