在"文本视图"中分配文本变量使应用程序崩溃

时间:2017-08-04 17:20:56

标签: ios swift xcode swift3 uitextview

基本上当下面的代码运行时,应用程序崩溃,我无法弄清楚原因。我想我可能会在" 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的新手)!

3 个答案:

答案 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)
}