【发布时间】:2021-12-21 14:11:05
【问题描述】:
您好,我对 SwiftUI 非常陌生,尤其是转换 uint。我正在尝试将inches 转换为feet,然后使用MeasurementFormatter() 将值显示为feet 而不是小数。出于某种原因,当我尝试将来自formatter 的字符串分配给我的输出值时,我的代码中不断出现错误。希望有人提出任何建议。
功能代码:
func convertToFeet() {
let formatter = MeasurementFormatter()
var distanceInFeet = Measurement(value: Double(inputValue) ?? 0, unit: UnitLength.inches)
distanceInFeet.convert(to: UnitLength.feet)
//formatter.unitStyle = MeasurementFormatter.UnitStyle.long
formatter.string(from: distanceInFeet) // 3,626.81 miles
outputValue = formatter.description
}
所有代码:
//
// ContentView.swift
// AC Converstion
//
// Created by Luke Jamison on 11/7/21.
//
import SwiftUI
import Foundation
struct ContentView: View {
@State private var inputValue = ""
@State private var outputValue = ""
@State var value: Double = 0
@State var length: Measurement = .init(value: 1, unit: UnitLength.inches)
private var massFormatter = MeasurementFormatter()
var body: some View {
NavigationView {
VStack {
Spacer()
Text("\(outputValue)").font(.title2)
Form {
Section(header: Text("Inches to Feet")) {
TextField("Enter Inches", text: $inputValue).keyboardType(.decimalPad)
Button(action: {
self.convertToFeet()
}, label: {
Label("Convert", systemImage: "car")
})
}
}.navigationTitle("Convert")
}
}
}
func convertToFeet() {
let formatter = MeasurementFormatter()
var distanceInFeet = Measurement(value: Double(inputValue) ?? 0, unit: UnitLength.inches)
distanceInFeet.convert(to: UnitLength.feet)
//formatter.unitStyle = MeasurementFormatter.UnitStyle.long
formatter.string(from: distanceInFeet) // 3,626.81 miles
outputValue = formatter.description
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】: