提问人:Peel 提问时间:10/28/2023 更新时间:10/28/2023 访问量:44
使用 Swift 的 Measurement() 类型将 String 转换为 UnitType
Using Swift's Measurement() type convert String into UnitType
问:
我正在将我的应用程序国际化,以便在任何系统中接受和返回测量值。因此,在创建(用户从选取器中选择单位类型)时,我将无法使用硬编码。我通过将用户输入的值分别存储为 Double 和 UnitType 作为 String 来存储到 Core Date 中。例如:UnitType
Measurement(value: value, unit: unit)
person.height = 190.0
person.heightUnit = "UnitLength.centimeters"
如果我将 UnitType 硬编码为 UnitLength.centimeters,如下所示:
let personHeight = 190.0
let height = Measurement(value: personHeight, unit: UnitLength.centimeters)
Text("Height = \(height.formatted(.measurement(width: .abbreviated, usage: .personHeight).locale(Locale(identifier: "en-US"))))")
它返回预期的“高度 = 6 英尺,2.8 英寸”
如果我随后尝试从 person.heightUnit 中的值构造 UnitType,如下所示:
let personHeight = 190.0
let personHeightUnit = "UnitLength.centimeters"
let unit = UnitLength(symbol: personHeightUnit)
let height = Measurement(value: personHeight, unit: unit)
Text("Height = \(height.formatted(.measurement(width: .abbreviated, usage: .personHeight).locale(Locale(identifier: "en-US"))))")
这将返回“高度 = 0 英寸”
如何将存储在 CoreData 中的字符串“UnitLength.centimeters”转换为与 Measurement 一起使用的 Unit 类型?
答: 暂无答案
评论
Measurement
Transformable
NSCoding
Measurment
NSCoding
value
unit
UnitLength(symbol: String)