核心数据:"存储在外部记录文件中"与"允许外部存储"

Tim*_*mbo 17 core-data

我实际上有一些与iOS上的Core Data实体属性设置相关的问题:

  1. 仅针对Spotlight集成存储"外部记录文件"吗?
  2. 仅适用于Mac OS的"存储在外部记录文件中"吗?
  3. 在iOS模拟器上,究竟存储了"外部记录文件"?

不要将这些问题与二进制数据属性设置"允许外部存储"混淆.据我所知,设置会将数据> 1MB放在商店外面.

  1. 在iOS模拟器上,存储"允许外部存储"的位置?

提前感谢你的帮助!

Dan*_*ert 12

Core Data Spotlight集成编程指南配置模型部分中详细描述了这一点:

要启用Spotlight索引,您需要指定应将哪些实体编入索引的属性以及哪些属性应添加到外部记录中.

在"配置"检查器中,对于要编制索引的每个属性,请选择:

Spotlight中的索引(可选)存储在外部记录文件中如果实体的至少一个属性设置了"Spotlight中的索引"标记,那么每当对该实体的实例的更改提交到持久性存储时,相应的外部记录文件已更新(最近修改的最后修改日期).这意味着Spotlight导入程序将运行,因此Spotlight索引将使用新数据进行更新.

如果您只选择"Spotlight中的索引",Core Data只会为相应的记录创建一个零长度文件.如果还选择"存储在外部记录中",则该属性将添加到外部记录的内容中.简单类型,如字符串,日期和数字,直接导出; 关系存储为UUID.

AFAICT:

  1. 不适用

  • "允许外部存储"与"存储在外部记录文件中"无关.这是两个完全不同的东西."允许外部存储"告诉Core Data它可以在文件中存储大量数据,而不是在数据库中."存储在外部记录文件中"是关于让Spotlight获取数据库中的内容.Spotlight不会在iOS上执行此操作,仅在Mac上执行此操作."允许外部存储"是您模型的一部分."外部"文件存储在db文件旁边. (15认同)