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

问题描述 投票:0回答:1

正如 WWDC 中提到的,iOS 11 应该支持索引

CoreData
,以便可以通过
Spotlight
进行搜索。这是 WWDC 演示:

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

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

我想主要问题是:

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

2.) 如何设置

NSCoreDataCoreSpotlightDelegate
并让它处理数据?看起来
NSPersistentStore
有一个属性

var coreSpotlightExporter: NSCoreDataCoreSpotlightDelegate

但它已经准备好了:(

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

ios core-data ios11 corespotlight
1个回答
8
投票

您不直接设置

coreSpotlightExporter
。相反,请使用导出委托设置
NSCoreDataCoreSpotlightExporter
选项:

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

我在调用

loadPersistentStores(completionHandler:)
之前添加了此代码。

要设置属性和实体,您可以更新

NSAttributeDescription
NSEntityDescription
或 UI 中的
.xcdatamodeld
中的相应属性。

© www.soinside.com 2019 - 2024. All rights reserved.