| 测试已测试 | ✓ | 
| 语言语言 | SwiftSwift | 
| 许可证 | MIT | 
| 发布最后发布 | 2016年11月 | 
| SwiftSwift 版本 | 3.0 | 
| SPM支持 SPM | ✗ | 
由 Michal Konturek 维护。
MKUnits 是一个极为精确的 Swift 单位转换库。它提供了物理量的度量单位,并简化了它们的操作。
注意 对于 Objective-C 实现,请参考 MKUnits pod 2.2.1 或访问 存档分支。
MKUnits 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。
MKUnits 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "MKUnits"让我们创建 1.5 千克 (kg),
let kilograms = 1.5.kilogram()0.5 (kg) 转换为克 (g)
let grams = 500.gram()和 10 磅 (lb)(相当于 4.5359237 (kg))
let pounds = 10.pound()然后将所有这些加在一起,并减去 0.0001 (kg) 毫克 (mg)。
let milligrams = 100.milligram()
var result = kilograms + grams + pounds - milligrams结果数量是 6.5358237 (kg)。
现在我们减去 0.5358237 (kg) 盎司 (oz),根据谷歌转换器,它相当于 18.900624805 (oz),但作为 MKUnits 非常精确,实际上是 18.900624805483390296005199558361177 (oz)。
let ounces = 0.5358237.kilogram().converted(MassUnit.ounce)
result = result - ounces结果数量大约是 6 (kg);确切地说是 6.00000000000000000000000000000000003 (kg)。
现在我们想将结果转换为石 (st),因此
result = result.converted(MassUnit.stone)
// 0.94483873964811055873038869091017890993 st由于结果过于精确,我们希望将其四舍五入。
let rounded = result.rounded(3)
// 0.945 st目前 MKUnits 支持以下 组单位
您可以通过添加新的 组单位 或 单位 来轻松扩展 MKUnits。
单元组要添加一个新的 单元组,只需创建一个继承自 Unit 的类,并遵循以下约定。
请确保在新的 单元组 中 单元符号 是唯一的。
public final class NewUnit: Unit {
    public static var unitA: NewUnit {
        return NewUnit(
            name: "unit A",
            symbol: "uA",
            ratio: NSDecimalNumber.one() // as it is a base unit
        )
    }
    public static var unitB: NewUnit {
        return NewUnit(
            name: "unit B",
            symbol: "uB",
            ratio: NSDecimalNumber(mantissa: 2, exponent: 0, isNegative: false)
        )
    }
}
extension NSNumber {
    public func unitA() -> Quantity {
        return Quantity(amount: self, unit: NewUnit.unitA)
    }
    public func unitB() -> Quantity {
        return Quantity(amount: self, unit: NewUnit.unitB)
    }
}单元组 添加新的单元要向现有的 单元组 添加更多单元,只需为该 单元组 创建一个分类。
不要子类化,因为单元只能与同一 单元组 的单元进行转换。
extension NewUnit {
    public static var unitC: NewUnit {
        return NewUnit(
            name: "unit C",
            symbol: "uC",
            ratio: NSDecimalNumber(mantissa: 4, exponent: 0, isNegative: false)
        )
    }
}
extension NSNumber {
    public func unitC() -> Quantity {
        return Quantity(amount: self, unit: NewUnit.unitC)
    }
}git checkout -b new-feature)。git commit -am 'Added new-feature')。git push origin new-feature)。