我正在尝试将可选字符串转换为Double,但是当我打开包装时,我的值不被获取:
let currentSwimDistanceTravelled = defaults.string(forKey: "SwimTotal") ?? "0.0"
此代码运行后,为currentSwimDistanceTravelled分配了一个字符串值“”,而不是“ 0.0”。
对不起,如果我错过了这里的一些基本知识,但我想到了?是打开可选项的最佳方法。
答案 0 :(得分:2)
default operator ??
的右侧仅在左侧为nil
时执行。我认为您的左侧是空字符串""
。尝试以下操作:
var currentSwimDistanceTravelled = "0.0"
if let val = defaults.string(forKey: "SwimTotal"), val != "" {
currentSwimDistanceTravelled = val
}