2014-12-15 25 views
5

Gdybym ogłoszony String takiego: var date = String()Jak sprawdzić, czy ciąg znaków nie jest pusty?

i chcę sprawdzić pogoda Jego nilString lub nie tak, że ja spróbować czegoś takiego:

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

Ale mam błąd jak: Can not invoke '!=' with an argument list of type '(@lvalue String, NilLiteralConvertible)'

potem próbuję to:

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

Ale wciąż otrzymuję błąd jak: Bound value in a conditional binding must be of Optional type

Więc moje pytanie brzmi: w jaki sposób mogę sprawdzić, czy nie jest Stringniljeśli Oświadczam, że w ten sposób?

Odpowiedz

23

Ciąg nie może być być zerowym. Właśnie o to chodzi w Swift.

Jeśli ma to być ewentualnie zero, zadeklarować ją jako opcja:

var date : String? 

Jeśli chcesz sprawdzić ciąg jest pusty (nie rób tego, to rodzaj optionals rzeczą zostały wykonane do pracy), następnie:

if date.isEmpty 

Ale naprawdę powinieneś używać opcji.

2

W twoim przykładzie ciąg nie może być zerowy. Aby zadeklarować ciąg, który może przyjąć zerowe trzeba zadeklarować opcjonalny ciąg:

var date: String? = String() 

Po tej deklaracji twoje testy będzie dobrze i można przypisać nil do tej zmiennej.

4

Możesz spróbować tego ...

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

Szczęśliwy Coding !!!

Powiązane problemy