2017-08-04 7 views
0

基本上,当下面的代码运行时,应用程序崩溃并且我找不到原因。我想我可能会将“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

又是什么崩溃日志说?作为IBOutlet, –

+0

是否正确连接test1? – Lbatson

+0

我认为在连接 –

回答

0

应用程序崩溃,因为test1.text也许nilUITextView的文本或UITextField的文本在第一次初始化时为零。

要解决此问题:

通过替换该行

let new1wvar = test1.text 

let new1wvar = test1.text ?? "" // If test1.text is nil, then will use "" to asign 
+0

这并不能防止代码崩溃,如果'test1'是'nil' – vadian

+0

我assum test1连接正确的IBOutlet:D – Khuong

+0

我想问题是,IBOutlet是**没有**连接。 – vadian

0

线

@IBOutlet weak var test1: UITextView! 

test1是IM plicitly unwrapped可选。因此,编译器将允许您访问它而不打开它,但它的责任是在访问它之前确保它不是零。

确保您已将test1正确链接到Storyboard/XIB。

确认它在其他答案中正确链接后,如果test1.text为零,请给出一些默认值。

let new1wvar = test1.text ?? "" 
0

尝试这个

@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) 
} 
相关问题