SwiftUI BaseUnit 实现自定义测量
SwiftUI BaseUnit implementation custom measurement
为了计算管道中的压降,我使用了带有流量参数的管道 class。我想为流量实施自定义测量,但我收到“异常 'NSInvalidArgumentException',原因:'*** 您必须覆盖 class 中的 baseUnit ... 以定义其基本单位.'”错误。
我的流量单位维度代码是:
class UnitFlow: Dimension {
static let cubicMeterPerSecond = UnitFlow(symbol: "m3/s", converter: UnitConverterLinear(coefficient: 1.0))
static let cubicMeterPerMinute = UnitFlow(symbol: "m3/min", converter: UnitConverterLinear(coefficient: 60.0))
static let cubicMeterPerHour = UnitFlow(symbol: "m3/h", converter:
//et cetera
static let baseUnit = UnitFlow(symbol: "m3/s", converter: UnitConverterLinear(coefficient: 1.0))
}
出错的地方是这一行:
Text("\(pipe.flow.converted(to: UnitFlow.cubicMeterPerMinute).value)")
有什么想法吗?
如错误提示,您需要覆盖 baseUnit
。但是,这是一种方法 - 而不是变量。
删除您当前的 baseUnit
,并将其替换为以下内容:
class UnitFlow: Dimension {
/* ... */
override class func baseUnit() -> Self {
Self(symbol: "m3/s")
}
}
为了计算管道中的压降,我使用了带有流量参数的管道 class。我想为流量实施自定义测量,但我收到“异常 'NSInvalidArgumentException',原因:'*** 您必须覆盖 class 中的 baseUnit ... 以定义其基本单位.'”错误。
我的流量单位维度代码是:
class UnitFlow: Dimension {
static let cubicMeterPerSecond = UnitFlow(symbol: "m3/s", converter: UnitConverterLinear(coefficient: 1.0))
static let cubicMeterPerMinute = UnitFlow(symbol: "m3/min", converter: UnitConverterLinear(coefficient: 60.0))
static let cubicMeterPerHour = UnitFlow(symbol: "m3/h", converter:
//et cetera
static let baseUnit = UnitFlow(symbol: "m3/s", converter: UnitConverterLinear(coefficient: 1.0))
}
出错的地方是这一行:
Text("\(pipe.flow.converted(to: UnitFlow.cubicMeterPerMinute).value)")
有什么想法吗?
如错误提示,您需要覆盖 baseUnit
。但是,这是一种方法 - 而不是变量。
删除您当前的 baseUnit
,并将其替换为以下内容:
class UnitFlow: Dimension {
/* ... */
override class func baseUnit() -> Self {
Self(symbol: "m3/s")
}
}