Siri Intent Donation for Shortcuts最终出现错误

Vit*_*Pai 3 ios siri sirikit ios12 sirishortcuts

我为Siri快捷方式创建了一个简单的意图,每当我试图捐赠意图时,它最终都会出现以下错误.

交互捐赠失败:%@ Error Domain = IntentsErrorDomain Code = 1901"无法捐赠交互{intent = {user =; identifier = 06DE1A38-6D46-4CB8-B825-3788E6A81420;}; dateInterval = <_NSConcreteDateInterval:0x60000043cce0>(开始日期)2018 -07-17 12:38:39 +0000 +(持续时间)0.000000秒=(结束日期)2018-07-17 12:38:39 +0000; intentResponse =; gr​​oupIdentifier =; intentHandlingStatus =未指定;标识符= F145FA84-7147 -41A8-8698-681F06C8CEB5; direction =未指定;}意图没有有效的快捷类型"UserInfo = {NSLocalizedDescription =无法捐赠交互{intent = {user =; identifier = 06DE1A38-6D46-4CB8-B825-3788E6A81420; }; dateInterval = <_NSConcreteDateInterval:0x60000043cce0>(Start Date)2018-07-17 12:38:39 +0000 +(Duration)0.000000 seconds =(End Date)2018-07-17 12:38:39 +0000; intentResponse =; groupIdentifier =; intentHandlingStatus =未指定; identifier = F145FA84-7147-41A8-8698-681F06C8CEB5; direction =未指定; }意图没有有效的快捷键类型}

以下是我的意向捐赠代码

func donateInteraction() {
        let intent = GetBalanceIntent()
        intent.suggestedInvocationPhrase = "Get Balance"
        let interaction = INInteraction(intent: intent, response: nil)
        interaction.donate { (error) in
            if error != nil {
                if let error = error as NSError? {
                    print("Interaction donation failed: %@", error)
                } else {
                    print("Successfully donated interaction")
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Vit*_*Pai 6

我错过了初始化我在定义文件中定义的自定义属性(即上例中的用户).

添加它解决了这个问题.代码如下所示:

func donateInteraction() {
        let intent = GetBalanceIntent()
        intent.suggestedInvocationPhrase = "Get Balance"
        intent.user = "vittal"
        let interaction = INInteraction(intent: intent, response: nil)
        interaction.donate { (error) in
            if error != nil {
                if let error = error as NSError? {
                    print("Interaction donation failed: %@", error)
                } else {
                    print("Successfully donated interaction")
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)