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