首页 > 解决方案 > 核心数据:延迟加载二进制属性/仅在访问时加载

问题描述

我有一个相当大的元素列表(几千个条目),其中包含存储 PDF 文档的二进制属性(最多可以达到几 MB)。

我怎样才能获取除二进制属性之外的所有元素,而不是立即获取,而是仅在通过访问它时获取element.document

标签: core-data

解决方案


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

如果出于某种原因您不想走这条路,您可以将属性与一对一的关系替换为一个新的、单独的实体,该实体只有一个 PDF 数据的属性。默认情况下,关系不会出现故障,即使原始对象出现故障也是如此。


推荐阅读