2016-04-18 8 views
0

Ich habe versucht, unter Anweisung ausführen, aber es ist übersprungen im Code.Guard-Anweisung in Swift für die Fehlerbehandlung

guard let num1 = num1Input.text else 
{ 
    show("No input in first box") 
    return 
} 

Kann mir jemand sagen, warum diese Aussage nicht ausgeführt wird, wenn das Textfeld leer ist?

+1

http://stackoverflow.com/questions/24102641/how-to-check-if-a-text-field-is-empty-or-not-in-swift –

Antwort

2

Sie könnten die Verwendung where Klausel für nicht-Null und nicht leer

zu überprüfen
guard let num1 = num1Input.text where !num1.isEmpty else { 
    show("No input in first box") 
    return 
} 
0

Sie sollten die Länge des Textes überprüfen, nicht, wenn seine nil heißt:

guard num1Input.text.characters.count > 0 else { 
    ... 
} 

Wenn der Text optional ist, was Sie tun können.

guard let num1 = num1Input.text where num1.characters.count > 0 else { 
    ... 
} 
+1

Verwenden Sie '.isEmpty' bitte. – nhgrif

0

Diese Aussage testet, ob die textnil ist, aber Sie wollen wohl, ob der String leer ist, testen, daher

guard let input = num1Input.text where input.characters.count > 0 else { 
    print("empty") 
    return 
} 

oder einfach

guard num1Input.text?.characters.count > 0 else { 
    print("empty") 
    return 
} 
+1

Verwenden Sie '.isEmpty' bitte. – nhgrif