2017-09-23 12 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-value) – Shades

답변

0

, 라벨에 당신의 텍스트 필드에서 텍스트 만에 문제가 때 TextField.text이 전무하다는 것이다 label.text = textfield.text이 라인에 영향을하려고 것으로 보인다.

이 예기치 않게 오류 이 왜 그 unwrap하는 동안 찾을 수 없음.

텍스트 필드는 선택 사항입니다. 값 또는 없음을 가질 수 있습니다. 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

당신이 시도 할 수있는 간단한 코드는 다음과 같습니다 솔루션은 여기에 안전하게이 같은 바인딩 옵션과 옵션 값 랩을 해제하는 것입니다. 무결곡 연산자 (a ?? b)는 (선택 사항)의 포장을 해제합니다. 값이 포함되어 있거나 이 0이면 b을 반환합니다. [무엇을 "심각한 오류 : 예기치 않게하는 옵션 값 풀기 동안 전무 발견"의미를?]의

@IBAction func myfunction(_ sender: UIButton) { 
    label.text = textfield.text ?? "" 
}