我正在尝试针对变量添加 try catch。没有 try catch 我这个错误:
fatal error: unexpectedly found nil while unwrapping an Optional value for variable Double(label.text!)!
所以我想捕获上面的错误。我在下面试过
do{
let value = try Double(label.text!)!
print("value\(value)")
} catch{
print("hi")
}
但它仍然给出同样的错误,我也看到了这个警告:
No calls to throwing functions occur within try and catch block in unreachable...
这是在 swift 中使用 try catch block 的正确方法吗?
编辑:(不重复)如果我只是返回 return Double(labelDisplay.text)
我得到编译错误 value of option type String?没有展开,所以我必须使用
return Double(labelDisplay.text!)!` ,如果失败的话。这就是我试图捕获它的原因。
另一个编辑:标签是@IBOutlet weak private var label: UILabel!
编辑:返回码
var displayValue: Double{
get{
print(labelDisplay.text.dynamicType)
return Double(labelDisplay.text!)!
}
set{
labelDisplay.text! = String(newValue)
}
}
最佳答案
从字符串中生成 double 不会抛出,所以你不会捕获任何东西,你应该
if let value = Double(label.text) {
//here it worked out
print("value \(value)")
} else {
//it failed
}
关于swift - 尝试快速捕获变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254936/