xcode 多个Intent无法运行

tquggr8v  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(117)

我有两个意图,我试图使用快捷方式应用程序运行。
这是我在IntentHandler中运行的测试:
这是可行的:

class IntentHandler: INExtension {
    override func handler(for intent: INIntent) -> Any? {
        
        guard intent is CarIDIntent else {
            return .none
         }
         return AccessTokenIntentHandler()
     }
 }

这是可行的:

class IntentHandler: INExtension {
    override func handler(for intent: INIntent) -> Any? {
        
        guard intent is AccessTokenIntent else {
            return .none
        }
        return AccessTokenIntentHandler()
     }
 }

这不起作用:

class IntentHandler: INExtension {
    override func handler(for intent: INIntent) -> Any? {
        
        guard intent is AccessTokenIntent else {
            return .none
        }
        
        guard intent is CarIDIntent else {
            return .none
        }
        
        return AccessTokenIntentHandler()
     }
 }

我在这里做错了什么?它们都被添加到Intents.intentdefinition文件中。

ef1yzkbh

ef1yzkbh1#

你可以尝试使用switch case,但是由于你没有给出任何关于错误信息的信息,所以很难找到准确的解决方案。

class IntentHandler: INExtension {
    override func handler(for intent: INIntent) -> Any? {
        switch intent {
        case is AccessTokenIntent:
            print("Access Token")
        case is CarIDIntent:
            print("Car ID")
        default:
            return .none
        }
        return AccessTokenIntentHandler()
     }
 }

相关问题