ios - 在iOS 11中,如何使核心数据在核心聚光灯下可搜索

标签 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

但它是只准备好的:(

我找不到任何可以清楚地解释这些内容的内容。谢谢!

最佳答案

您不直接设置 coreSpotlightExporter。相反,使用导出委托(delegate)设置 NSCoreDataCoreSpotlightExporter 选项:

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

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

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

关于ios - 在iOS 11中,如何使核心数据在核心聚光灯下可搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45623020/

相关文章:

ios - 自动布局约束警告 “Will attempt to recover by breaking constraint”

android - 对 Cordova 的 AngularJS $resource POST 调用不适用于 iOS/Android 设备,但适用于浏览器

ios - NSInMemoryStoreType 类型的核心数据忽略实体的约束

swift - 如何在 swift 4 中从 UIImagepicker 中选择 GIF 图像?

ios - 使用 Xcode/Swift 或 unicorn pixie dust 在 iPad 上覆盖(阻止)或关闭 iOS

ios - 在风景中呈现模态 VC 时,父 VC 的安全区域发生变化

iOS 5 上的 jQuery 事件

ios - UIViewController 与继承

ios - 避免在从 `UITableView` 进行后台更新时跳入 `NSFetchedResultsController`

ios - CoreData 获取所有一对多关系