2016-07-02 6 views
-4

Ich weiß, es gibt Tonnen von Stack-Überlaufseiten da draußen, die erklären, wie dies zu tun ist, aber jedes Mal, wenn ich den Code von hier nehme und es einstelle, bekomme ich den gleichen Fehler und dieser Fehler ist Wert von " Schnur? " hat kein Mitglied "text" Irgendwelche Ideen von einem soliden Weg, der funktioniert, um zu überprüfen, ob ein Textfeld in rapid leer ist?Überprüfen, ob Textfelder leer sind Swift

let userEmail = userEmailTextField.text; 
// Check for empty fields 
if (userEmail.text.isEmpty) { 
    // Display alert message 
    return; 
} 
+0

Der Fehler verweist auf eine falsche Verwendung der Eigenschaft 'text'. Bitte zeigen Sie Ihren Code, sonst ist es schwer zu erraten, was vor sich geht. – dasblinkenlight

+0

Der Code mit dem Fehler – BestThereEverWas

+1

wurde gerade gepostet. Ihre 'userEmail' -Variable enthält bereits den Text des' userEmailTextField'. Keine Notwendigkeit, einen anderen 'userEmail.text' zu tun, tun Sie einfach' userEmail.isEmpty' – James

Antwort

16

This post eine gute Antwort gegeben wird (es ist schade, es nicht „akzeptiert“ Marke hat). Verwenden Sie (self.field.text?.isEmpty ?? true).

Angenommen Ihre textField deklariert als:

@IBOutlet weak var textField: UITextField! 

Sie seine Leere überprüfen mit:

if textField.text?.isEmpty ?? true { 
     print("textField is empty") 
    } else { 
     print("textField has some text") 
    } 

Um die Variablen in Ihrer bearbeiteten Post zu verwenden:

let userEmail = userEmailTextField.text; 
    // Check for empty fields 
    if userEmail?.isEmpty ?? true { 
     // Display alert message 
     return; 
    } 

oder:

// Check for empty fields 
    if userEmailTextField.text?.isEmpty ?? true { 
     // Display alert message 
     return; 
    } 
+0

Ich legte diesen genauen Code in und ich bekomme immer noch den gleichen Fehler, wenn ich "textfield" zu "userEmail" ändern – BestThereEverWas

+0

Es scheint, dass Sie Ihren Beitrag bearbeitet, während ich schreibe. Und "userEmail" in Ihrem editierten Post ist ein wenig irreführend. Ich füge einige Codes hinzu, die Ihren bearbeiteten Code anpassen. – OOPer

2

Die Eigenschaft text ist optional. So kann es eine String oder nil enthalten.

Wenn Sie nil als leere String zu behandeln, dann schreiben Sie einfach

let isEmpty = (textField.text ?? "").isEmpty 
+0

Ich verstehe wirklich nicht, was Sie damit meinen, ich will nur userEmail gleich userEmailTextField – BestThereEverWas

+0

Ich bin nicht sicher, was nil ist und oder wie man es benutzt – BestThereEverWas

+0

Warum sollte ich etwas tun müssen, um es ist ein eingebauter – BestThereEverWas

2

Alternativ können Sie auch:

if (textField.text.characters.count > 0) { 
    print("text field not empty") 
} else { 
    print("text field empty") 
} 
0

Hier ist die richtige Antwort für diese.

textField.text = "" 
if (textField.text.isEmpty) { 
    print("Ooops, it's empty") 
}