Ios NSEndomanager检测核心数据实体的实际删除

Ios NSEndomanager检测核心数据实体的实际删除,ios,core-data,nsundomanager,Ios,Core Data,Nsundomanager,我正在寻找一种方法,以了解核心数据实体何时真正从数据存储中删除 我将一个NSondomanager连接到我的NSManagedObjectContext,到目前为止,一切正常 现状 我正在开发一个应用程序,允许用户创建房间并在每个房间中添加一些图片。当用户想要创建一个新房间时,我使用以下代码在NSUndoManager中创建一个操作: [[[NSManagedObjectContext MR_defaultContext] undoManager] beginUndoGrouping]; [[[

我正在寻找一种方法,以了解核心数据实体何时真正从数据存储中删除

我将一个NSondomanager连接到我的NSManagedObjectContext,到目前为止,一切正常

现状 我正在开发一个应用程序,允许用户创建房间并在每个房间中添加一些图片。当用户想要创建一个新房间时,我使用以下代码在NSUndoManager中创建一个操作:

[[[NSManagedObjectContext MR_defaultContext] undoManager] beginUndoGrouping];
[[[NSManagedObjectContext MR_defaultContext] undoManager] setActionName:@"Create Room"];
然后在用户按“取消”时撤消。这将导致撤消所有更改并删除新创建的临时房间对象

然后,用户为该临时房间对象拍照。我将实际图像存储在磁盘上,并将文件路径作为NSString属性存储在图片实体中。当用户手动删除房间中的图片时,我会在picture上的preparefordelection:方法中从磁盘中删除该图像

问题 现在想象一下这样的情况:用户稍后打开房间实体,删除一张图片,然后按cancel。NSUndoManager现在撤消所有操作。当用户删除图片时,实际图像已从磁盘中删除。但是,图片对象由NSNDOManager恢复,文件路径现在设置为物理删除的图像

是否有办法知道图片何时真的被删除,即在PrepareForDelete:?我的意思是,它是由用户删除的,而不是通过撤消操作恢复的


我真的不应该每x天从我的应用程序文档中删除任何内容并清理未链接的照片吗?或者我应该跟踪用户删除了哪些图片,并在用户按“保存”而不是“取消”时将其排队等待删除吗?

解决了这个问题,方法是从不通过任何用户操作从磁盘中删除,并在每次应用启动时运行清理方法