2012-10-26 84 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