You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何在App Intent里正确使用IntentParameter.Duration?

正确实现App Intent的Duration参数配置

你之前的代码错误在于defaultUnit的写法,IntentParameter.Duration是系统预定义的Duration类型参数配置,无需手动添加泛型或可选型包装。以下是正确的实现方式:

import AppIntents
import Foundation

struct YourCustomIntent: AppIntent {
    static var title: LocalizedStringResource = "自定义时长Intent"
    
    @Parameter(
        title: "Minutes",
        defaultUnit: .duration(minutes: 1) // 直接使用预定义的Duration配置,可指定默认时长
    )
    var minutes: Measurement<UnitDuration>
    
    func perform() async throws -> some IntentResult {
        // 示例:将Measurement转换为分钟数值使用
        let minuteValue = minutes.converted(to: .minutes).value
        print("输入的时长为:\(minuteValue)分钟")
        
        return .result()
    }
}

关键说明:

  • defaultUnit: .duration()是系统提供的便捷配置,自动适配Measurement<UnitDuration>类型,支持指定默认的时长单位(如minutes、hours等)和数值
  • 如果不需要默认值,可以省略defaultUnit参数,但需确保参数为可选类型(Measurement<UnitDuration>?),或者在Intent配置中设置必填
  • 在业务逻辑中,可通过converted(to:)方法将Measurement转换为目标单位的数值使用

内容的提问来源于stack exchange,提问作者Owen Zhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:32:04