gpt4 book ai didi

swift - 为什么不能为 Measurement 变量赋值?

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:23 25 4
gpt4 key购买 nike

我很难弄清楚如何将计算结果分配给变量,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 的截屏视频,但还没有找到答案。提前感谢您提供的任何帮助。

最佳答案

改变这个:

oneRepMax? = Measurement(value: result, unit: unit)

到:

oneRepMax = Measurement(value: result, unit: unit)

如果 oneRepMax 是一个当前具有 nil 值的可选值,那么当您使用 oneRepMax 时不会发生赋值? = ...

iOS/Swift: Can't assign optional String to UILabel text property 的答案是相关的,并提供了更多的解释。

关于swift - 为什么不能为 Measurement<UnitMass> 变量赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43613421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com