是否可以在swift中向MeasurementFormatter添加自定义unitOptions?我希望能够定义诸如.imperial和.metric
之类的内容extension UnitEnergy {
static let footPounds = UnitEnergy(symbol: "ft-lbs", converter: UnitConverterLinear(coefficient: 1))
}
var test = Measurement<UnitEnergy>( value: 10, unit: .footPounds)
var formatter = MeasurementFormatter()
formatter.locale = Locale(identifier: "es")
print( formatter.unitOptions )
print( formatter.string(from: test))
formatter.unitOptions = .naturalScale
print( formatter.unitOptions )
print( formatter.string(from: test))
formatter.unitOptions = .providedUnit
print( formatter.unitOptions )
print( formatter.string(from: test))
输出:
UnitOptions(rawValue: 0)
10 J
UnitOptions(rawValue: 2)
2,39 cal
UnitOptions(rawValue: 1)
10 ft-lbs
答案 0 :(得分:0)
您当然可以创建自己的类,该类可以使用imperial
和metric
单位选项,并使用符合您的预期和期望的区域设置调用测量格式化程序。它是最简单的方法,可以按照您的预期工作。使用en_US和en_AU按照我的预期工作,并且为了这个目的而想要它。
更多信息和指南:Introduction to MeasurementFormatter。