核心数据:延迟访问/仅在访问时加载二进制属性

时间:2019-06-07 19:33:50

标签: core-data

我有一个很大的元素列表(数千个),这些元素包含一个二进制属性,用于存储PDF文档(最多可达几MB)。

如何仅通过element.document访问二进制属性,而不是立即获取二进制属性?

1 个答案:

答案 0 :(得分:0)

如果是我,我会将PDF保存到本地文件系统,并仅将文件夹/文件名存储在CoreData中。 (请注意,您应该只存储相对于Documents目录(或其他定义的文件夹)的文件夹和文件名,而不是文件的完整路径,因为Documents文件夹实际上可以更改(例如,使用新的应用程序版本)。 / p>

如果由于某种原因您不想走那条路,则可以将属性替换为与一个新的单独实体(仅对PDF数据具有一个属性)的一对一关系。默认情况下,即使原始对象发生故障,关系也不会出现故障。