首页 > 解决方案 > 为现有的苹果转换类别添加更多转换单位

问题描述

是否可以在现有的苹果转换类别中添加更多转换单位?

https://developer.apple.com/documentation/foundation/unittemperature 在上面的链接 Rankine 不可用。如何自定义/扩展此类并添加 Rankine ?

PS。兰金样本公式为: 5°C × 9/5 + 491.67 = 500.67°R

聚苯乙烯。计划以这种方式使用它

let celsius = Measurement(value: 4, unit: UnitTemperature.celsius)
let kelvins = celsius.converted(to: UnitTemperature.kelvin)
print(kelvins)

TIA

标签: swiftmeasurementnsmeasurement

解决方案


只需遵循 中的文档Dimension,这是UnitTemperature.

UnitTemperature的基本单位是开尔文。所以我只需要查找将 Rankine 转换为 Kelvin 的公式,它只是一个线性系数 ( degreesKelvin = degressRakine * 5/9),并将其插入:

extension UnitTemperature {
    static var rankine = UnitTemperature(
        symbol: "°R",
        converter: UnitConverterLinear(coefficient: 5/9)
    )
}

let celsius = Measurement(value: 5, unit: UnitTemperature.celsius)
let rankin = celsius.converted(to: .rankine)
print(rankin) // => 500.66999999999996 °R

推荐阅读