2017-08-04 1 views
0

im Grunde, wenn der Code unten läuft, stürzt die App ab und ich kann nicht herausfinden, warum. Ich denke, dass ich den Text innerhalb von "test1" der Variablen "new1var" falsch zuordnen kann, aber ich bin mir nicht sicher.Zuweisen von Text in "Textansicht" zu einer Variablen macht App

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

Vielen Dank für Ihre Hilfe (ich bin neu zu schnell)!

+0

Und was macht Crashlog sagt? –

+0

ist test1 ordnungsgemäß als IBOutlet verdrahtet? – Lbatson

+0

Ich denke, Sie haben Ihre Steckdose nach dem Verbinden umbenannt –

Antwort

0

App-Absturz, weil test1.text vielleicht nil. UITextView 's Text oder UITextField' s Text ist Null bei der ersten Zeit, die es initialisiert wird.

dieses Problem zu beheben:

Ersetzen Sie diese Zeile

let new1wvar = test1.text 

von:

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

Das verhindert nicht, dass der Code abstürzt, wenn 'test1'' nil' ist. – vadian

+0

I assum test1 ist richtig als IBOutlet verdrahtet: D – Khuong

+0

Ich schätze, das Problem ist, dass das IBOutlet ** nicht ** verbunden ist. – vadian

0

Die Linie

@IBOutlet weak var test1: UITextView! 

sagt, dass test1 ein im ist explizit ausgepackt optional. Der Compiler würde also erlauben, auf sie zuzugreifen, ohne sie auszupacken, aber es liegt in Ihrer Verantwortung, dafür zu sorgen, dass vor dem Zugriff kein Fehler vorliegt.

Vergewissern Sie sich, dass Sie test1 ordnungsgemäß mit Ihrem Storyboard/XIB verbunden haben.

Nachdem sichergestellt wurde, dass es in anderen Antworten richtig verknüpft ist, geben Sie einen Standardwert ein, wenn test1.text Null ist. Versuchen

let new1wvar = test1.text ?? "" 
0

Diese

@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) 
} 
Verwandte Themen