在iOS 11中,如何在核心聚光灯中搜索核心数据

时间:2017-08-10 20:35:36

标签: ios core-data ios11 corespotlight

如WWDC所述,iOS 11应该支持索引核心数据,以便可以通过Spotlight进行搜索。这是WWDC的演示文稿:

  

https://developer.apple.com/videos/play/wwdc2017/210/

然而,在观看视频并查看文档之后,我仍然不知道如何设置我的核心数据对象,以便可以从手机聚光灯搜索中搜索它们。

我猜主要问题是:

1.。)如何实际设置某种对象类型的哪些属性是可搜索的。

2.。)如何设置NSCoreDataCoreSpotlightDelegate并让它处理数据?看起来NSPersistentStore有一个属性

  

var coreSpotlightExporter:NSCoreDataCoreSpotlightDelegate

但它只是现成的:(

我无法找到能够清楚解释这些内容的任何内容。谢谢!

1 个答案:

答案 0 :(得分:5)

您没有直接设置coreSpotlightExporter。而是使用导出委托设置NSCoreDataCoreSpotlightExporter选项:

container.persistentStoreDescriptions.forEach {
    $0.setOption(MyCoreDataCoreSpotlightDelegate(forStoreWith:$0, model: container.managedObjectModel), forKey:NSCoreDataCoreSpotlightExporter)
}

我在调用loadPersistentStores(completionHandler:)之前添加了此代码。

要设置属性和实体,请更新NSAttributeDescriptionNSEntityDescription或UI中.xcdatamodeld的相应属性。