[英]CoreData - Managing file references in child context
我的CoreData模型具有一个具有Image属性的实体。 我一直通过将这些实体存储在文件系统中并仅在CoreData属性(即路径)中维护对文件的引用来管理这些实体的图像。
但是,我最近转向使用子托管上下文来处理编辑(这样,如果用户应该选择取消编辑,则可以轻松地放弃更改)。 这一切都很好,但是现在我有一个跟踪任何图像更改的问题,特别是如果用户更改了图像,我将无法再删除旧文件(不想在文件系统上建立孤立的文件)并替换它与新文件一起使用,因为如果用户取消更改,则旧文件现在将丢失。
如我所见,我有两个选择:
寻找任何指导,以找出哪种方法更好,更重要的是–性能更高? 或任何其他替代解决方案/选项...
谢谢!
第一种方法会更好。 如果保存是可丢弃的,则可以这样做。 而且,除非图像通常很小,否则通常最好将其保留在外部。
删除旧图像的好地方可能是在托管对象的willSave()
方法中。 查看changedValues
查找旧的图像名称。 如果它与当前值不同,请删除旧值。
为了处理回滚的更改,我想到了两种可能性。
NSTemporaryDirectory()
并使用willSave()
将它们移动到永久位置。 然后,您无需执行任何回滚操作-您可以让iOS为您清除临时目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.