正如 WWDC 中提到的,iOS 11 应该支持索引
CoreData
,以便可以通过 Spotlight
进行搜索。这是 WWDC 演示:
https://developer.apple.com/videos/play/wwdc2017/210/
但是,在观看视频和查看文档后,我仍然不知道如何设置我的核心数据对象,以便可以从手机聚光灯搜索中搜索它们。
我想主要问题是:
1.) 如何实际设置特定对象类型的哪些属性可搜索。
2.) 如何设置
NSCoreDataCoreSpotlightDelegate
并让它处理数据?看起来NSPersistentStore
有一个属性
var coreSpotlightExporter: NSCoreDataCoreSpotlightDelegate
但它已经准备好了:(
我找不到任何可以清楚解释这些内容的内容。谢谢!
您不直接设置
coreSpotlightExporter
。相反,请使用导出委托设置 NSCoreDataCoreSpotlightExporter
选项:
container.persistentStoreDescriptions.forEach {
$0.setOption(MyCoreDataCoreSpotlightDelegate(forStoreWith:$0, model: container.managedObjectModel), forKey:NSCoreDataCoreSpotlightExporter)
}
我在调用
loadPersistentStores(completionHandler:)
之前添加了此代码。
要设置属性和实体,您可以更新
NSAttributeDescription
和 NSEntityDescription
或 UI 中的 .xcdatamodeld
中的相应属性。