2017-08-04 9 views
0

基本的に以下のコードが実行されると、アプリがクラッシュし、その理由がわかりません。私は "test1"内のテキストを間違った方法で変数 "new1var"に割り当てるかもしれないと思うが、わからない。"Text View"のテキストを変数に割り当てると、アプリケーションクラッシュが発生する

@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 
} 

あなたのご協力ありがとうございます(私は迅速に対応しています)!

+0

そして、何クラッシュログが言うんか?試してみてください –

+0

はtest1がIBOutletとして適切に配線されていますか? – Lbatson

+0

接続後にコンセントの名前を変更したと思います。 –

答えて

0

test1.textnilとアプリがクラッシュする可能性があります。 UITextViewのテキストまたはUITextFieldのテキストは、初めて初期化されたときにはnilです。

この問題を解決するには、次の

によって

let new1wvar = test1.text 

この行を置き換えます

@IBOutlet weak var test1: UITextView! 

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

'test1'が' nil'の場合、コードがクラッシュするのを防ぐことはできません – vadian

+0

test1がIBOutletとして適切に配線されていると仮定します:D – Khuong

+0

IBOutletが**接続されていないということです。 – vadian

0

ラインはtest1がIMであると述べています明白にアンラップされたオプション。だから、コンパイラはあなたがそれをアンラップすることなくアクセスできるようにしますが、それにアクセスする前にそれが無限でないことを確実にする責任があります。

test1がStoryboard/XIBに正しくリンクされていることを確認してください。

test1.textがnilの場合、他の回答で正しくリンクされていることを確認した後、デフォルト値を与えます。

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) 
} 
関連する問題