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

Widget配置时遇AppIntent获取错误,如何为radius参数设置默认值?

解决Widget配置中AppIntent 'radius'参数缺失的问题

这个报错是因为你的LNAction对应的AppIntent里的radius参数没有提供默认值,Widget配置时无法获取到该参数的有效值,下面是两种官方推荐的解决方式:

方法一:在@Parameter初始化器中设置默认值

如果radius有固定的默认值,直接在@Parameter的初始化参数里加上defaultValue即可,代码示例如下:

import AppIntents

struct LNAction: AppIntent {
    static var title: LocalizedStringResource = "调整半径"
    
    // 给radius参数设置默认值,比如默认10.0
    @Parameter(title: "半径", defaultValue: 10.0)
    var radius: Double
    
    func perform() async throws -> some IntentResult {
        // 执行你的逻辑
        return .result()
    }
}

方法二:使用Query的default方法

如果radius的默认值需要动态获取(比如从UserDefaults读取上次设置的值),可以用Query的default方法来提供默认值,代码示例:

import AppIntents

struct LNAction: AppIntent {
    static var title: LocalizedStringResource = "调整半径"
    
    @Parameter(title: "半径")
    var radius: Double
    
    // 定义Query并设置默认值逻辑
    static var parameterSummary: some ParameterSummary {
        Summary {
            \.$radius.default {
                // 这里可以写动态获取默认值的逻辑,比如从UserDefaults取
                UserDefaults.standard.double(forKey: "lastRadius") ?? 10.0
            }
        }
    }
    
    func perform() async throws -> some IntentResult {
        // 执行你的逻辑,比如保存当前radius到UserDefaults
        UserDefaults.standard.set(radius, forKey: "lastRadius")
        return .result()
    }
}

两种方法选一种即可,第一种适合固定默认值的场景,第二种适合需要动态默认值的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:47:03