2014-12-15 3 views
5

Wenn ich erklärte ein String wie folgt aus: var date = String()Wie überprüft man, dass die Zeichenfolge in swift nicht Null ist?

und ich möchte Wetter überprüfen sein ein nilString oder nicht, so dass ich versuchen, so etwas wie:

if date != nil{ 
println("Its not nil") 
} 

Aber ich habe einen Fehler wie: Can not invoke '!=' with an argument list of type '(@lvalue String, NilLiteralConvertible)'

nach, dass ich versuchen Sie dies:

if let date1 = date{ 
println("Its not nil") 
} 

Aber immer noch einen Fehler bekommen wie: Bound value in a conditional binding must be of Optional type

Also meine Frage ist, wie kann ich überprüfen, ob die String nicht nilist, wenn ich es auf diese Weise erklären?

Antwort

23

Die Zeichenfolge kann nicht sein. Das ist der Sinn dieser Art von Tippen in Swift.

Wenn Sie es möchten möglicherweise null sein, erklären sie als optional:

var date : String? 

Wenn Sie eine Zeichenfolge ist leer überprüfen möchten (dies nicht tun, dann ist es das, was optionals wurden gemacht, um zu arbeiten) dann:

if date.isEmpty 

Aber Sie sollten wirklich Optionals verwenden.

2

In Ihrem Beispiel kann die Zeichenfolge nicht Null sein. Um einen String angeben, die akzeptieren können nil Sie optionale Zeichenfolge deklarieren müssen:

var date: String? = String() 

Nach dieser Erklärung Ihre Tests in Ordnung sein wird und man konnte nil dieser Variablen zugewiesen.

4

du versuchen können ...

var date : String! 
... 
if let dateExists = date { 
     // Use the existing value from dateExists inside here. 
} 

Glücklich Coding !!!

Verwandte Themen