这个问题在这里已有答案:
这是我的代码 . 当textfield为空时,我试图修复应用程序崩溃 . 这种方法适用于我以前的应用程序 .
使用空的UITextField应用程序按下touchCheck按钮时会出现以下错误:
线程1:致命错误:在展开Optional值时意外发现nil
我没有在stackoverflow上找到任何对我有用的答案 .
另外,我是swift的新手 .
@IBOutlet weak var inField: UITextField!
@IBOutlet weak var outLabel: UILabel!
@IBAction func touchCheck(_ sender: Any) {
let alert = UIAlertController(title: "Hey!", message: "Text field is empty. This may cause app crash. Please, enter a positive whole number to text field in order to get number checked!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Got it", style: .default, handler: nil))
var i = 2
var isPrime = true
let number = Int(inField.text!)
if number == 1 {
isPrime = true
}
if (inField.text?.isEmpty)! {
self.present(alert, animated: true)
outLabel.text = String("Text Field is empty!")
} else if isPrime == true {
outLabel.text = String("Number \(number ?? 1) is prime!")
self.view.endEditing(true)
} else if isPrime == false {
outLabel.text = String("Number \(number ?? 1) isn't prime!")
self.view.endEditing(true)
}
while i < number! { //error at this line
if number! % i == 0 {
isPrime = false
}
i += 1
}
}
2 回答
这个
返回一个可选的
int?
可能是
nil
在使用前检查它在声明
number
之前,您需要检查文本字段是否为空 .当字段为空时,这将使
number
为零