我正在尝试构建一个AppIntent(iOS 16),其中包含一个参数,用户可以在快捷方式应用程序中输入数据。代码如下所示:
import Foundation
import AppIntents
struct MyIntent: AppIntent {
static var title = LocalizedStringResource("Intent title")
@Parameter(title: "user value", default: "not set")
var myParameterVariableName: String
static var parameterSummary: some ParameterSummary {
Summary("Your Value: \(\.$myParameterVariableName)")
}
@MainActor func perform() async throws -> some IntentResult {
print("action")
return .result()
}
}
当我尝试使用该Intent配置快捷方式时,它在快捷方式应用程序中看起来与预期的一样:
但是,参数的默认值应根据活动生成配置而有所不同。所以我试了这个:
#if DEBUG
@Parameter(title: "user value", default: "debug")
var myParameterVariableName: String
#else
@Parameter(title: "user value", default: "not set")
var myParameterVariableName: String
#endif
但这会导致在快捷方式应用程序中显示变量名称:
无论我选择构建哪个构建配置,它都不会将“debug”或“not set”显示为默认值。我可以点击它并输入数据,但不显示默认值。
有什么想法吗?有没有其他的方法来替换使用预处理器宏的变量?
1条答案
按热度按时间2admgd591#
这个问题已经在Xcode 15 beta中解决了。编译器条件现在在应用程序意图中工作。