如果我像这样声明一个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
,我如何检查它不是
发布于 2014-12-15 19:04:30
字符串不能为空。这就是Swift中这种打字的意义所在。
如果您希望它可能为零,则将其声明为可选的:
var date : String?
如果你想检查一个字符串是否为空(不要这样做,这是optionals要解决的问题),那么:
if date.isEmpty
但你真的应该使用可选选项。
发布于 2014-12-15 19:16:23
你可以试试这个。
var date : String!
...
if let dateExists = date {
// Use the existing value from dateExists inside here.
}
编码快乐!
发布于 2014-12-15 19:04:42
在您的示例中,字符串不能为nil。要声明一个可以接受nil的字符串,您必须声明可选字符串:
var date: String? = String()
在声明之后,您的测试将会很好,您可以将nil赋值给该变量。
https://stackoverflow.com/questions/27482537
复制相似问题