我正在制作一个单位转换器应用程序.在处理压力时,我发现在Foundation中已经预定义了几个单元:

      UnitPressure.newtonsPerMetersSquared
      UnitPressure.bars
      UnitPressure.poundsForcePerSquareInch

但是没有标准的大气压.(请注意,bar与标准大气压力不同,尽管它们很接近).

我想知道我该怎么处理这个案子?

推荐答案

你可以很容易地定义自己的单位:

extension UnitPressure {
    static let standardAtmospheres = UnitPressure(
        symbol: "atm", 
        converter: UnitConverterLinear(coefficient: 101325)
    )
}

Measurement(value: 1, unit: UnitPressure.bars)
    .converted(to: .standardAtmospheres) // 0.9869232667160128 atm
Measurement(value: 1, unit: UnitPressure.standardAtmospheres)
    .converted(to: .bars) // 1.01325 bar

标准大气的符号是"atm",1 atm=101325 N/m^2,如WolframAlpha所示,因此代码中使用了幻数.

请注意,N/m^2是UnitPressure的基本单位.

UnitPressure类将其基本单位定义为newtonsPerMetersSquared,并提供以下单位,UnitConverterLinear个转换器使用给定的系数进行初始化:[……]

Ios相关问答推荐

构建iOS项目失败.我们运行了";xcodeBuild";命令,但它退出并返回错误代码65-expo reaction ative

自定义油漆圆角三角形

当包含UITextView的inputAccessoryView显示键盘时,iOS UITableView内容会出现UINavigationBar奇怪的错误

SwiftUI检测顶级和安全区域插图

NSHashTable要求任何MyCustomProtocolAnyObject都是类类型

许多文本字段的性能问题

Swift - 缺少函数参数在编译期间不会失败,甚至会导致不同的数据类型?

iOS 16.4 更新后 Xcode 14.3 构建错误:找不到 libarclite_iphoneos.a,链接器命令失败

更新 flutter 和 xcode 后 Xcode 14.3 中缺少文件 (libarclite_iphoneos.a)

Swift Combine:prepend() before share() 阻止初始接收器执行

DllImport with .a file for iOS in MAUI

如何让我的 iOS 应用程序与 api 连接?

通过 iOS 创建和导出动画 gif?

如何获取 iTunes 连接团队 ID 和团队名称?

如何确定 WKWebView 的内容大小?

是否可以将 Socket.io 与 AWS Lambda 一起使用?

iOS:如何从 URL 调试新启动应用程序

Objective-C 将 NSDate 设置为当前 UTC

以编程方式确定 iPhone 是否越狱

如何为 UILabel 的背景 colored颜色 设置动画?