基本上当下面的代码运行时,应用程序崩溃,我无法弄清楚原因。我想我可能会在" test1"内部分配文本。到变量" new1var"以错误的方式,但我不确定。
@IBOutlet weak var test: UITextField! //text field
@IBOutlet weak var test1: UITextView! //text view
@IBAction func submit(_ sender: Any) { //when a button is pressed
let newvar = test.text
let new1wvar = test1.text //this line is where it crashes
}
非常感谢你的帮助(我是swift的新手)!
答案 0 :(得分:0)
应用崩溃,因为test1.text
可能是nil
。第一次初始化时,UITextView
的文字或UITextField
的文字为零。
要解决此问题:
替换此行
let new1wvar = test1.text
由:
let new1wvar = test1.text ?? "" // If test1.text is nil, then will use "" to asign
答案 1 :(得分:0)
该行
@IBOutlet weak var test1: UITextView!
说test1
是一个隐式解包的可选项。所以编译器允许你在不打开它的情况下访问它,但你有责任在访问它之前确保它不是零。
确保您已将test1
正确链接到Storyboard / XIB。
确保在其他答案中正确链接后,如果test1.text
为零则给出一些默认值。
let new1wvar = test1.text ?? ""
答案 2 :(得分:0)
Try This
@IBOutlet weak var test: UITextField!
@IBOutlet weak var test1: UITextField!
@IBAction func submit(_ sender: Any) {
guard let newvar = test.text ,let new1wvar = test1.text else{
print("Error")
return
}
print(newvar)
print(new1wvar)
}