使用MeasurementFormatter
时,我在声明/使用零符号表示未知值时遇到问题:
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.zeroSymbol = "?"
numberFormatter.string(from: 0.0) // '?'
let formatter = MeasurementFormatter()
formatter.unitOptions = .providedUnit
formatter.numberFormatter = numberFormatter
var distance = Measurement<UnitLength>(value: 0, unit: .parsecs)
formatter.string(from: distance) // '0 pc' - expected: '? pc'
尝试使用不同的值声明(例如
Double.zero
)不会更改输出。这是iOS中的概念性事情,还是我在这里遗漏了一些东西?
最佳答案
It turned out通过更改Measurement声明(distance
)产生所需的输出:
let dist1 = Measurement<UnitLength>(value: 0, unit: .parsecs) // output: '0 pc'
let dist2 = Measurement(value: 0, unit: Unit(symbol: UnitLength.parsecs.symbol)) // output '? pc' as expected
提交了radar。
关于ios - iOS MeasurementFormatter中的零符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61542247/