我使用NSUserActivity
索引要搜索的用户 Activity 。我找到了删除特定NSUserActivity
的解决方案,将带有CSSearchableItemAttributeSet
的relatedUniqueIdentifier
分配给NSUserActivity
:
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeContact as String)
attributeSet.relatedUniqueIdentifier = objectId
let activity = NSUserActivity(activityType: Employee.domainIdentifier)
activity.title = name
activity.userInfo = userActivityUserInfo
activity.keywords = [email, department]
activity.contentAttributeSet = attributeSet
并删除它使用
[[CSSearchableIndex defaultSearchableIndex]
deleteSearchableItemsWithIdentifiers: objectId completionHandler:^(NSError *deletionError) {
if (deletionError) {
NSLog(@"Could not delete items from the search index with error %@", deletionError);
}
}];
我不知道这是否是正确的解决方案。您是否有更好的解决方案来删除特定的
NSUserActivity
搜索索引?
最佳答案
从iOS 12开始,有2种删除NSUserActivity
的方法
class func deleteAllSavedUserActivities(completionHandler: () -> Void)
class func deleteSavedUserActivities(withPersistentIdentifiers: [NSUserActivityPersistentIdentifier], completionHandler: () -> Void)
文档注释“删除了由Core Spotlight存储或捐赠为Siri快捷方式的所有用户 Activity ”。
https://developer.apple.com/documentation/foundation/nsuseractivity
关于ios - 如何删除特定的NSUserActivity搜索索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647405/