【发布时间】:2017-04-25 14:24:34
【问题描述】:
我很难弄清楚如何将计算结果分配给变量,fileprivate var oneRepMax: Measurement<UnitMass>? 正如您所看到的,它是一个可选的,并且在我尝试为其分配值后它只是保持为 nil。
我最初尝试像这样直接分配给 .value 属性:
oneRepMax?.value = liftWeight * (Double(repetitions) ^^ 0.10)
但这没有用。然后我确定我需要在分配期间指定unit(基于当前用户默认单位)所以我尝试了这个(这里是完整的上下文):
func calculateOneRepMax() -> Measurement<UnitMass> {
let defaultWeightUnit = UserDefaults.weightUnit().unitName <-- returns "kg"
let unit = UnitMass(symbol: defaultWeightUnit) <-- 'po unit' shows <NSUnitMass: 0x61000003ffa0> kg
switch withFormula {
case "Lombardi":
let result = liftWeight * (Double(repetitions) ^^ 0.10)
oneRepMax? = Measurement(value: result, unit: unit)
*case next case...*
}
我真的认为这会起作用,但 oneRepMax 仍然为零。
我已经阅读了 Apple 的文档,甚至查看了一些 Ray Wenderlich 的截屏视频,但还没有找到答案。提前感谢您提供的任何帮助。
【问题讨论】:
标签: swift swift3 measurement