2017-08-10 92 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