0
是否有可能在swift中将自定义unitOptions添加到MeasurementFormatter?我想能够定义的,如.imperial和.metric在Swift中为MeasurementFormatter添加额外的unitOptions
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
即使您向枚举中添加更多选项,MeasurementFormatter也不会知道任何有关新值的信息。 – rmaddy
那么是否有一种方法可以覆盖继承自MeasurementFormatter的可以处理增加值的类中的函数? – Andrew