gpt4 book ai didi

ios - 使用 Spotlight 从 NSUserActivity 访问 domainIdentifier

转载 作者:行者123 更新时间:2023-11-28 12:59:24 24 4
gpt4 key购买 nike

我将“Person”和“Product”对象索引到 Spotlight 中,如下所示:

// Person
let personItem = CSSearchableItem(uniqueIdentifier: personID, domainIdentifier: "person", attributeSet: attributeSet)

CSSearchableIndex.defaultSearchableIndex().indexSearchableItems([personItem]) { (error: NSError?) -> Void in
if let error = error {
print("Indexing error: \(error.localizedDescription)")
} else {
print("person added to spotlight")
}
}


// Product
let productItem = CSSearchableItem(uniqueIdentifier: productID, domainIdentifier: "product", attributeSet: attributeSet)

CSSearchableIndex.defaultSearchableIndex().indexSearchableItems([productItem]) { (error: NSError?) -> Void in
if let error = error {
print("Indexing error: \(error.localizedDescription)")
} else {
print("product added to spotlight")
}
}

您可以看到我正在使用 domainIdentifier:“person”和“product”。但是,当我返回应用程序时,我将如何访问这些 domainIdentifier

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
if userActivity.activityType == CSSearchableItemActionType {

// if product do this
// if person do that

}

return true
}

最佳答案

据我所知,在 CoreSpotlight 中,您无法直接访问 domainIdentifier。您拥有的是 uniqueIdentifier,因此您可以使用某种前缀解决它。要获取标识符,您可以使用:

if let itemActivityIdentifier = userActivity.userInfo?["kCSSearchableItemActivityIdentifier"] {

}

在你的 AppDelegate 中。

关于ios - 使用 Spotlight 从 NSUserActivity 访问 domainIdentifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com