2012-10-26 31 views
17

我确实有相关的核心数据实体的一些问题在iOS属性设置:核心数据:“储存在外部记录文件”与“允许外部存储”

  1. 是“在外部记录,存储文件”为只有Spotlight集成?
  2. 仅用于Mac OS的“存储在外部记录文件”中?
  3. 在iOS模拟器上,“外部记录文件”的确切位置存储在哪里?

这些问题不要与二进制数据属性设置“允许外部存储”混淆。据我所知,设置会将商店外的数据> 1MB。

  1. 在iOS模拟器上,“允许外部存储”存储在哪里?

在此先感谢您的协助!

回答

12

这(详细)在描述配置的Core Data Spotlight Integration Programming Guide模型部分:

要启用Spotlight索引,你需要指定的 性质哪些实体应该被索引,并且,如果应将这些属性中的任何一个 添加到外部记录中。

在配置检查,对于每一个想要 被编入索引的属性,选择:

指数在外部记录文件的Spotlight(可选)商店所提供的 至少一个属性的实体有“指数聚光灯” 标志设置,那么无论什么时候改变该实体的一个实例是 致力于持久性存储,相应的外部记录 文件被更新(最低限度的最后修改日期更改)。此 表示Spotlight导入器将运行,因此Spotlight索引 将用新数据更新。

如果您只选择“Spotlight中的索引”,则核心数据只会为相应记录创建一个零长度文件 。如果你也是“在外部唱片店”选择 ,该场所被添加到 外部记录的内容。简单的类型,如字符串,日期和数字,可直接导出;关系存储为UUID。

AFAICT:

  1. 并不真正适用
+0

喜丹尼尔,是的,我之前已经阅读该手册,不知道是否是告诉全貌。我猜想更重要的问题是“在iOS模拟器上,”允许外部存储“存储在哪里?” – Timbo

+15

“允许外部存储”与“存储在外部记录文件”无关。这是两个完全分开的东西。“允许外部存储”告诉核心数据,它可以将大块数据存储在文件中,而不是存储在数据库中。 “存储在外部记录文件”是让Spotlight选取你的数据库中的内容。 Spotlight不会在iOS上执行此操作,只能在Mac上执行此操作。 “允许外部存储”是您模型的一部分。 “外部”文件存储在db文件旁边。 –

+0

此博客文章[核心数据:不要将大文件存储为二进制数据](https://medium.com/@alexedge/binary-attributes-and-migration-in-core-data-bc7cfb3029fc),外部文件存储在.YourAppName_SUPPORT/_EXTERNAL_DATA中,可能位于文档文件夹下。 – jk7