Swift 使用粉底';s用于执行自定义单位转换的度量API

Swift 使用粉底';s用于执行自定义单位转换的度量API,swift,Swift,我有三个需要转换的度量单位,其中两个不是由Foundation提供的。基金会提供的其中一个单位是UnitDispersion.partsPerMillion。其他两个单位为.mille当量/升和碳酸盐硬度度 我需要使用的数学公式如下: 1meq/L=2.8dkh=50ppm 我曾尝试将Foundation.UnitConverter子类化,但我不明白如何使用baseUnitValue(fromValue-value:Double)->Double和value(fromBaseUnitValue-

我有三个需要转换的度量单位,其中两个不是由
Foundation
提供的。
基金会提供的其中一个单位是
UnitDispersion.partsPerMillion
。其他两个单位为
.mille当量/升
碳酸盐硬度度

我需要使用的数学公式如下:

1meq/L=2.8dkh=50ppm

我曾尝试将
Foundation.UnitConverter
子类化,但我不明白如何使用
baseUnitValue(fromValue-value:Double)->Double
value(fromBaseUnitValue-baseUnitValue:Double)->Double来创建正确的结果


我是否需要子类化
Foundation.UnitConverter
Foundation.UnitConverterLinear
?我是否需要为每个单元之间的转换创建一个子类
UnitConverter

通常,您不需要为UnitConverter创建子类。相反,您可以创建UnitConverterLinear的具体实例。例如:

extension UnitDispersion {
    static let millequivalentsPerLiter =
        UnitDispersion(symbol: "meq/L",
                       converter: UnitConverterLinear(coefficient: 50))
}

let value = Measurement(value: 1, 
                        unit: UnitDispersion.millequivalentsPerLiter) // 1.0 meq/L
value.converted(to: .partsPerMillion) // 50.0 ppm