如WWDC所述,iOS 11应该支持索引核心数据,以便可以通过Spotlight进行搜索。这是WWDC的演示文稿:
然而,在观看视频并查看文档之后,我仍然不知道如何设置我的核心数据对象,以便可以从手机聚光灯搜索中搜索它们。
我猜主要问题是:
1.。)如何实际设置某种对象类型的哪些属性是可搜索的。
2.。)如何设置NSCoreDataCoreSpotlightDelegate并让它处理数据?看起来NSPersistentStore有一个属性
var coreSpotlightExporter:NSCoreDataCoreSpotlightDelegate
但它只是现成的:(
我无法找到能够清楚解释这些内容的任何内容。谢谢!
答案 0 :(得分:5)
您没有直接设置coreSpotlightExporter
。而是使用导出委托设置NSCoreDataCoreSpotlightExporter
选项:
container.persistentStoreDescriptions.forEach {
$0.setOption(MyCoreDataCoreSpotlightDelegate(forStoreWith:$0, model: container.managedObjectModel), forKey:NSCoreDataCoreSpotlightExporter)
}
我在调用loadPersistentStores(completionHandler:)
之前添加了此代码。
要设置属性和实体,请更新NSAttributeDescription
和NSEntityDescription
或UI中.xcdatamodeld
的相应属性。