2017-09-23 8 views
-1

私はテキストフィールドを持っています。ボタンが押されたときに非表示にしたいので、テキストフィールドのテキストをテキストフィールドのすぐ下のラベルに渡したい。私はこれを試してみました:スウィフトのラベルにテキストフィールドの値を渡す

@IBAction func myfunction(_ sender: UIButton) { 
    if textfield.isHidden == true{ 
     textfield.isHidden = false 
     }else{ 
      label.text = textfield.text 
      textfield.isHidden = true 
    } 
} 

どうやらhiddingおよび一部を示すが動作しているが、ライン

label.text = textfield.text 

ではありません。私は、この「スレッド1:EXC_BREAKPOINT(コード= 1、サブコード= 0x10143fb50」のようなエラーを取得し、コンソールに私が「致命的なエラー:オプションの値をアンラップしながら、予想外にnilを見つけ、」持っている。誰かが私を助けてくださいすることができ

+1

可能な複製(https://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly -found-nil-while-unwrapping-an-optional-valu) – Shades

答えて

0

あなたの誤差に基づいて、あなたがこの行は、ラベルにあなたのテキストフィールドからテキストをlabel.text = textfield.textが、問題は、あなたのtextfield.textがnilであるということであると影響を与えるためにしようとしているようです。

あなたが予期せずエラーを持っている理由だことアンラップしている間にゼロが見つかりました。

あなたのテキストフィールドはオプションです。それは値またはゼロを持つことができます。あなたがこの種のエラーを持つnilを持つオプションの値をアンラップしようとすると。ここ ソリューションは、このようなバインディングオプションで安全に任意の値をアンラップすることである。ここでは

if let textInput = textfield.text { 
    //There is a text in your textfield so we get it and put it on the label 
    label.text = textInput 
} else { 
    //textfield is nil so we can't put it on the label 
    print("textfield is nil") 
} 
0

はあなたが試すことが単純にコードです。ゼロ合体演算子(b)は、オプションでをアンラップします。値が含まれている場合はの場合はの場合はデフォルト値を返します。 [何「致命的なエラー:予期せずに任意の値アンラップながらnilを見つける」という意味を?]の

@IBAction func myfunction(_ sender: UIButton) { 
    label.text = textfield.text ?? "" 
} 
関連する問題