以下代码
extension String {
func isValidEmail() -> Bool {
if self == nil { return false }
给我错误Value of type 'String' can never be nil, comparison isn't allowed
有可能以某种方式检查nil吗?
答案 0 :(得分:5)
检查nil
没有必要。
该函数是String
上的实例函数。
它只能在String
。
其次,Swift没有" nil messaging"就像Objective-C那样,在 HAS 上调用该函数的String实例不是nil。即使在Objective-C中,这仍然无关紧要,因为如果在nil String上调用函数将无法运行。
所以,消息是正确的,Value of type "String" can never be nil
。
答案 1 :(得分:1)
你可以检查你的字符串是否为空:
var myString : String?
if myString.isEmpty {
// do whatever you want ..
}
这更有意义..
答案 2 :(得分:0)
回想一下,在Swift中,String
类型的值永远不会为nil
;如果你想要一个可以计算的值,你必须声明它String?
。
所以不,没有办法检查String
变量是否设置为nil
,,因为它不能。