例如,13 被输入到由 numberField 引用的文本字段中
@IBAction func calculateButton(sender: AnyObject) {
var numInt = numberField.text.toInt()
println(numInt) //outputs Optional(13)
println(numInt!) //outputs 13
if numInt != nil {
var unwrappedNum = numInt!
var isPrime = true
println(unwrappedNum) //Crashes here and outputs (lldb)
for var i = 1; i<unwrappedNum; i++ {
if unwrappedNum % i == 0 {
isPrime = false
}
}
}
}
我在网上查了一下,我认为问题是它的计算结果为 nil,但我不明白当 if 语句之外它不是 nil 时,它如何计算为 nil。
最佳答案
最快捷的方法是使用可选绑定(bind),而不是nil
检查。
if let unwrappedNum = numInt
{
println(unwrappedNum)
}
或者你也可以这样做
if let numInt = numberField.text.toInt()
{
println(numInt)
}
numInt
将被解包。
有关更多信息,请阅读:http://www.appcoda.com/beginners-guide-optionals-swift/
关于swift - 对错误消息感到困惑(lldb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167262/