2014-12-15 5 views
5

Если я объявил String так: var date = String()Как проверить, что строка не равна нулю?

и я хочу, чтобы проверить погоду сво nilString или нет, так что я пытаюсь что-то вроде:

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

Но я получил сообщение об ошибке, как: Can not invoke '!=' with an argument list of type '(@lvalue String, NilLiteralConvertible)'

после этого я стараюсь это:

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

Но до сих пор получаю сообщение об ошибке, как: Bound value in a conditional binding must be of Optional type

Так что мой вопрос, как я могу проверить, что String не nil, если я объявляю это так?

ответ

23

Строка не может быть nil. Вот в чем смысл такого набора слов в Свифте.

Если вы хотите, чтобы это было возможно, ноль, объявить его в качестве опции:

var date : String? 

Если вы хотите проверить, строка является пустой (не делайте этого, это своего рода вещь дополнительными опциями были сделаны для работы):

if date.isEmpty 

Но вы действительно должны использовать опционные.

2

В вашем примере строка не может быть нулевой. Чтобы объявить строку, которая может принимать ноль, вы должны объявить дополнительно строку:

var date: String? = String() 

После этого заявления тесты будет хорошо, и вы можете присвоить ноль для этой переменной.

4

Вы можете попробовать это ...

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

С Днем Coding !!!

Смежные вопросы