Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 解析Siri快捷方式中的时间间隔_Swift_Xcode_Sirikit_Sirishortcuts - Fatal编程技术网

Swift 解析Siri快捷方式中的时间间隔

Swift 解析Siri快捷方式中的时间间隔,swift,xcode,sirikit,sirishortcuts,Swift,Xcode,Sirikit,Sirishortcuts,我正在应用程序中实现Siri快捷方式。我的意图中有一个duration属性,它的单位设置为分钟 因此,用户有两个选项来提供此属性的值:1。在创建快捷方式时预定义它,2。将其保留为空,并在运行快捷方式时填充 我的问题是,当预定义值时,或者当用户通过键入(而不是语音命令)填充值时,它的行为类似于时间间隔对象,因此该值以秒为单位(即键入“2”返回120.0)。但当使用语音命令时,它会在几分钟内返回结果,而这不是我想要的(即说“2”返回数字2) 因此,我想知道如何获得一致的值,或者如何检测用户何时使用语

我正在应用程序中实现Siri快捷方式。我的意图中有一个
duration
属性,它的单位设置为分钟

因此,用户有两个选项来提供此属性的值:1。在创建快捷方式时预定义它,2。将其保留为空,并在运行快捷方式时填充

我的问题是,当预定义值时,或者当用户通过键入(而不是语音命令)填充值时,它的行为类似于时间间隔对象,因此该值以秒为单位(即键入“2”返回120.0)。但当使用语音命令时,它会在几分钟内返回结果,而这不是我想要的(即说“2”返回数字2)

因此,我想知道如何获得一致的值,或者如何检测用户何时使用语音命令或键入

以下是我解析此属性的代码:

func resolveTimeInterval(for intent: MyIntent, with completion: @escaping (INTimeIntervalResolutionResult) -> Void) {
    guard let timeInterval = intent.timeInterval else {
        completion(INTimeIntervalResolutionResult.needsValue())
        return
    }
    
    let timeIntervalDouble = timeInterval.doubleValue
    completion(INTimeIntervalResolutionResult.success(with: timeIntervalDouble))
}
下面是如何定义此属性的屏幕截图: