Как я могу использовать API Resodervers из приложения намерения, например, Struct DoubleFromStringResolver?IOS

Программируем под IOS
Ответить
Anonymous
 Как я могу использовать API Resodervers из приложения намерения, например, Struct DoubleFromStringResolver?

Сообщение Anonymous »

Я работаю над приложениями, ярлыками и Siri на iOS. Кажется, что Siri доставляет строки, что мне нужно, так это двойной.
Я обнаружил, что в рамках приложения есть API резолюров. /> У кого -нибудь есть пример, как использовать, например, struct doublefromStringResolver < /code>? < /p>
Вот фрагмент моего приложения кода. Но это не работает должным образом, Сири как-то не понимает двойного ... < /p>
struct AddInsulin: AppIntent {

static var title: LocalizedStringResource = "Record Insulin Injection"
static var description: LocalizedStringResource = "Ask the system to record insulin units for IOB calculation."

// We provide two parameters, one used only for AppShortcuts with a limited value of options,
// and an open value that can be used programatically with Shortcuts and also on the times that
// Siri fails to understand a value, to ask the user for something more precise.
@Parameter(title: "Insulin Units", description: "How many insulin units?", requestValueDialog: "How much insulin?")
var insulinUnitsEnum: InsulinUnitsEnum?

@Parameter(title: "Insulin Units", description: "How many insulin units?")
var unitsDouble: Double?

// @Parameter(title: "Units", description: "How many insulin units?")
// var unitsInt: Int?

static var parameterSummary: some ParameterSummary {
Summary("Record \(\.$unitsDouble) units of insulin") {
}
}

@MainActor
// func perform() async throws -> some IntentResult & ProvidesDialog & ShowsSnippetView {
func perform() async throws -> some IntentResult & ProvidesDialog & ShowsSnippetView {

let formatter = NumberFormatter()
formatter.locale = Locale.current

var insulinDeliveryUnits: Double = 0.0

if let value = insulinUnitsEnum?.rawValue {
insulinDeliveryUnits = Double(value)!
} else if let unitsDouble {
// let formattedString = formatter.number(from: unitsDouble)
// insulinDeliveryUnits = Double(formattedString ?? 0.0)
insulinDeliveryUnits = unitsDouble
} else {
insulinDeliveryUnits = try await $unitsDouble.requestValue("How many insulin units?")
// let formattedString = formatter.number(from: string)
// insulinDeliveryUnits = Double(formattedString ?? 0.0)
}
if insulinDeliveryUnits == 0.0 { //throw $unitsDouble.needsValueError("How many insulin units?")
throw $unitsDouble.needsValueError("Could not determine insulin units value.")
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ruct-doubl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»