使 NSNumberformatter().numberFromString return 成为可选的
Make NSNumberformatter().numberFromString return an optional
我是 swift 的新手。只是想知道如何将下面的代码转换为可选代码。
var displayValue: Double {
get {
return NSNumberFormatter().numberFromString(display.text! as NSString)!.doubleValue
}
set {
display.text = "\(newValue)"
userIsInTheMiddleOfTypeingANumber = false
}
}
这是来自斯坦福计算器系列讲座。讲师没有说明如何使其成为可选的。我的理解是,当 displayValue 中有一个字符串无法转换为 Double(如 "Error")时,应用程序会崩溃。问题是 displayValue 需要在不同时间显示可以和不能转换为 Double 的字符串。
我知道以前有人问过类似的问题,但我找不到明确的答案。
谢谢
无需将其设为 return 可选。在 nil 的情况下,您可以使用 nil 合并运算符 return 0,如下所示:
return (NSNumberFormatter().numberFromString(display.text) as? Double) ?? 0
我是 swift 的新手。只是想知道如何将下面的代码转换为可选代码。
var displayValue: Double {
get {
return NSNumberFormatter().numberFromString(display.text! as NSString)!.doubleValue
}
set {
display.text = "\(newValue)"
userIsInTheMiddleOfTypeingANumber = false
}
}
这是来自斯坦福计算器系列讲座。讲师没有说明如何使其成为可选的。我的理解是,当 displayValue 中有一个字符串无法转换为 Double(如 "Error")时,应用程序会崩溃。问题是 displayValue 需要在不同时间显示可以和不能转换为 Double 的字符串。
我知道以前有人问过类似的问题,但我找不到明确的答案。
谢谢
无需将其设为 return 可选。在 nil 的情况下,您可以使用 nil 合并运算符 return 0,如下所示:
return (NSNumberFormatter().numberFromString(display.text) as? Double) ?? 0