首页 > 解决方案 > 可选值返回 nil 和 ?? 操作员

问题描述

我正在尝试将可选字符串转换为 Double,但是当我打开包装时,我的值没有被采用:

let currentSwimDistanceTravelled = defaults.string(forKey: "SwimTotal") ?? "0.0"

运行此代码后,currentSwimDistanceTravelled 被分配一个字符串值“”,而不是“0.0”。

对不起,如果我在这里错过了一些基本的东西,但我想??是解开可选项的最佳方式。

标签: swift

解决方案


default operator ??仅当左侧为时才执行右侧nil。我认为您的左侧是空字符串""。尝试以下操作:

var currentSwimDistanceTravelled = "0.0"
if let val = defaults.string(forKey: "SwimTotal"), val != "" {
    currentSwimDistanceTravelled = val
}

推荐阅读