2014-12-15 26 views
5

Se ho dichiarato un String come questo: var date = String()Come verificare che la stringa non sia nulla in swift?

e voglio controllare il meteo suo un nilString o non così che cerco qualcosa di simile:

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

Ma ho ottenuto un errore del tipo: Can not invoke '!=' with an argument list of type '(@lvalue String, NilLiteralConvertible)'

dopo che provo questo:

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

Ma ancora ottenere un errore del tipo: Bound value in a conditional binding must be of Optional type

Quindi la mia domanda è: come posso verificare che il String non è nilse dichiaro in questo modo?

risposta

23

La stringa non può essere essere nullo. Questo è il punto di questo tipo di digitazione in Swift.

Se si vuole che sia possibilmente pari a zero, dichiararla come optional:

var date : String? 

Se si desidera controllare una stringa è vuota (non fare questo, è il genere di cose optional sono stati fatti per funzionare):

if date.isEmpty 

Ma davvero dovresti usare gli optionals.

2

Nel tuo esempio la stringa non può essere nulla. Per dichiarare una stringa che può accettare nulla si deve dichiarare stringa opzionale:

var date: String? = String() 

Dopo tale dichiarazione i test andrà bene e si potrebbe assegnare zero a quella variabile.

4

Si può provare questo ...

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

Felice Coding !!!

Problemi correlati