如何在Swift Siri中删除捐赠的快捷方式

如何在Swift Siri中删除捐赠的快捷方式,swift,shortcut,siri,sirikit,Swift,Shortcut,Siri,Sirikit,我有一个简单的风格列表应用程序,其中添加的项目可以有一个目的,以便用户可以找到并标记为“完成”的项目,而无需打开应用程序 在Note类中,我有这个函数来提供意图,它可以按预期工作 public func donateMarkNoteAsCompleteIntent() { let intent = MarkNoteAsCompleteIntent() intent.content = self.content let dateFormatter = DateFo

我有一个简单的风格列表应用程序,其中添加的项目可以有一个目的,以便用户可以找到并标记为“完成”的项目,而无需打开应用程序

在Note类中,我有这个函数来提供意图,它可以按预期工作

public func donateMarkNoteAsCompleteIntent() {    
    let intent = MarkNoteAsCompleteIntent()
    intent.content = self.content

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd/MM/YYYY"
    intent.addedDate = dateFormatter.string(from: self.addedDate)
    intent.id = self.id

    let interaction = INInteraction(intent: intent, response: nil)

    interaction.groupIdentifier = self.id
    interaction.donate(completion: nil)
}
我唯一的问题是,当用户使用快捷方式并触发应用程序更新便笺项目时,我想删除快捷方式,以便用户不能再次触发它

在我的意图句柄函数中,我最终调用了这个函数

public func removeMarkNoteAsCompleteIntent() {
    INInteraction.deleteAll(completion: nil)
    let index = CSSearchableIndex()
    index.deleteAllSearchableItems(completionHandler: nil)
}
无论我在这里做什么组合的事情,我似乎不能删除捐赠的捷径。一旦用户接受将任务标记为完成,我希望快捷方式不再在聚光灯搜索中可见,等等。意图处理代码中的所有其他内容都正常工作,它可以完美地更新数据库中的注释项


非常感谢您的帮助。

您查看过苹果的文档吗?是的,但是没有太多,它只是说使用INInteraction.delete函数来删除交互,我尝试过各种方法,包括删除带有groupIdentifier的特定交互,以及简单地删除所有交互,但什么都不起作用。看起来像个bug。查克:我确实看到了同样的线索,不过是几个月前的。当然,这不仅仅是一个bug,这是一个非常严重的错误!有没有其他方法可以在任务完成后删除类似的活动???