例如,将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。

最佳答案

代替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/

10-10 14:54