如何在swift中检查字符串是不是nil?

时间:2014-12-15 11:00:28

标签: string swift

如果我宣布String这样:var date = String()

我想查看天气是nil String或不是,以便我尝试以下内容:

if date != nil{
println("It's not nil")
}

但我收到的错误如下:Can not invoke '!=' with an argument list of type '(@lvalue String, NilLiteralConvertible)'

之后我试试这个:

if let date1 = date{
println("It's not nil")
}

但仍然收到如下错误:Bound value in a conditional binding must be of Optional type

所以我的问题是,如果我以这种方式声明},我怎么能检查String是不是nil

4 个答案:

答案 0 :(得分:25)

字符串不能为零。这就是Swift中这种打字的重点。

如果您希望它可能为零,请将其声明为可选:

var date : String? 

如果你想检查一个字符串为空(不要这样做,那就是可以选择使用的那种东西)然后:

if date.isEmpty

但你真的应该使用选项。

答案 1 :(得分:5)

你可以试试这个......

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

快乐编码!!!

答案 2 :(得分:2)

在您的示例中,字符串不能为零。要声明一个可以接受nil的字符串,你必须声明可选的字符串:

var date: String? = String()

在声明之后,您的测试将没有问题,您可以为该变量指定nil。

答案 3 :(得分:1)

有点晚了,但可能会帮助别人。您可以创建一个可选的字符串扩展名。我执行了以下操作,以将可选字符串设置为空(如果为nil):

extension Optional where Wrapped == String {

    mutating func setToEmptyIfNil() {
        guard self != nil else {
            self = ""
            return
        }
    }

}