【发布时间】:2016-12-18 20:30:51
【问题描述】:
我在 iOS 中创建了一个 Spotlight 扩展,并希望对其进行调试。但是,由于 Spotlight 索引由 iOS 控制,我不知道哪个应用程序会触发索引运行。我尝试了 Safari,但无济于事。
【问题讨论】:
标签: ios swift ios-app-extension corespotlight
我在 iOS 中创建了一个 Spotlight 扩展,并希望对其进行调试。但是,由于 Spotlight 索引由 iOS 控制,我不知道哪个应用程序会触发索引运行。我尝试了 Safari,但无济于事。
【问题讨论】:
标签: ios swift ios-app-extension corespotlight
在 Xcode 窗口左上角的方案选择器中选择 Spotlight 扩展。
当您单击运行时,Xcode 会询问您要运行哪个应用程序。选择您的扩展程序的父应用。这将正常运行您的应用程序,但您现在将附加到扩展程序以进行调试。
下一步是触发 Spotlight 重新索引。从您设备的设置页面执行此操作(必须启用它才能从 Xcode 进行开发):
设置 -> 开发者 -> CoreSpotlight 测试
您可以在此处选择重新索引所有项目或重新索引所有带有标识符的项目。这两个选项对应于下面的 Core Spotlight IndexRequestHandler: CSIndexExtensionRequestHandler 方法:
override func searchableIndex(_ searchableIndex: CSSearchableIndex, reindexAllSearchableItemsWithAcknowledgementHandler acknowledgementHandler: @escaping () -> Void) {
// Reindex all data with the provided index
}
override func searchableIndex(_ searchableIndex: CSSearchableIndex, reindexSearchableItemsWithIdentifiers identifiers: [String], acknowledgementHandler: @escaping () -> Void) {
// Reindex any items with the given identifiers
}
您现在可以正常调试这些方法,运行时错误会显示在源代码编辑器中。
【讨论】: