2017-08-10 95 views
2

如WWDC所述,iOS 11应该支持对Core Data进行索引,以便通过Spotlight进行搜索。这是WWDC演讲:在iOS 11中,如何在核心聚光灯下搜索核心数据

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

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

我想主要问题是:

1)你如何实际设置一定的对象类型的哪些属性进行搜索。

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

VAR coreSpotlightExporter:NSCoreDataCoreSpotlightDelegate

但它readyonly :(

我找不到任何解释清楚这个东西感谢

+0

请参阅我的答案以了解如何使用'NSCoreDataCoreSpotlightDelegate'。 –

回答

2

!您不直接设置coreSpotlightExporter,而是使用您的导出代理设置NSCoreDataCoreSpotlightExporter选项:

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

我在添加此代码之前致电loadPersistentStores(completionHandler:)

要设置属性和实体,请更新NSAttributeDescriptionNSEntityDescription的适当属性,或在UI中更新.xcdatamodeld

+0

需要在UI中检查聚光灯支持以查看实体的属性和显示表达式。 – Andy