如何解决NSUserActivity deleteAllSavedUserActivities不起作用
我的情况非常简单:我使用下一个函数
private func launchActivity(_ id: String,title: String,invocPhrase: String) {
userActivity = NSUserActivity(activityType: "Open_bank")
userActivity?.title = title
userActivity?.userInfo = ["id": id]
if #available(iOS 12.0,*) {
userActivity?.suggestedInvocationPhrase = invocPhrase
userActivity?.isEligibleForPrediction = true
userActivity?.persistentIdentifier = id
} else {
//Can't actually invoke this block
}
}
创建一个特定的userActivity,然后将其添加到Siri,以便invocPhrase
可以调用它。这是执行此操作的功能。
func presentAddOpenBankToSiriVC() {
guard let userActivity = self.userActivity else { return }
if #available(iOS 12.0,*) {
let shortcut = INShortcut(userActivity: userActivity)
let viewController = INUIAddVoiceShortcutViewController(shortcut: shortcut)
viewController.modalPresentationStyle = .formSheet
viewController.delegate = self
present(viewController,animated: true,completion: nil)
} else {
//Can't actually invoke this block
}
}
稍后我尝试删除它(以及所有其他用户活动)
NSUserActivity.deleteAllSavedUserActivities {}
与Apple文档中的内容相反,它不会删除任何用户活动 https://developer.apple.com/documentation/sirikit/deleting_donated_shortcuts
实际上,起初我尝试过一种方法
deleteSavedUserActivities(withPersistentIdentifiers:completionHandler:)
使用userActivity的persistentIdentifier,但显然也无济于事。
我不知道为什么它拒绝让步,但是会感谢您的帮助或提示
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。