我使用NSUserActivity来索引用户活动以进行搜索。我找到了一个删除特定NSUserActivity的解决方案,将一个带有relatedUniqueIdentifier的CSSearchableItemAttributeSet分配给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搜索索引?
发布于 2019-05-16 01:37:07
从iOS 12开始,有两种方法可以删除NSUserActivity
class func deleteAllSavedUserActivities(completionHandler: () -> Void)
class func deleteSavedUserActivities(withPersistentIdentifiers: [NSUserActivityPersistentIdentifier], completionHandler: () -> Void)文档指出:“删除Core Spotlight存储的或作为Siri快捷方式捐赠的所有用户活动。”
https://developer.apple.com/documentation/foundation/nsuseractivity
https://stackoverflow.com/questions/34647405
复制相似问题