【发布时间】:2018-05-08 00:58:20
【问题描述】:
我的 CoreData 模型有一个具有 Image 属性的实体。 我一直通过将它们存储在文件系统上并仅在 CoreData 属性(即路径)中维护对文件的引用来管理这些实体的图像。
但是,我最近转而使用子托管上下文来处理编辑(这样,如果用户应该选择取消编辑,我可以轻松放弃更改)。 这一切都很好,但是我现在有一个跟踪任何图像更改的问题,特别是如果用户更改图像我不能再删除旧文件(不希望在文件系统上建立孤立文件)并替换它与新文件一起使用,因为如果用户取消更改,旧文件现在将丢失。
在我看来,我有两个选择:
- 我跟踪业务层中的图像更改,仅在保存上下文后删除任何旧图像,或者如果上下文被丢弃/取消,则反过来删除任何新图像。
- 我将图像属性更改为二进制数据类型(选中“允许外部存储”)并让 CoreData 管理数据...在这种情况下,一切都应该正常工作。
正在寻找关于哪种方法更好,更重要的是 - 性能更高的任何指导? 或任何其他替代解决方案/选项...
谢谢!
【问题讨论】:
标签: ios swift core-data magicalrecord