如何检查内部扩展名为nil

时间:2017-01-12 10:30:06

标签: swift

以下代码

extension String {

    func isValidEmail() -> Bool {
        if self == nil { return false }

给我错误Value of type 'String' can never be nil, comparison isn't allowed

有可能以某种方式检查nil吗?

3 个答案:

答案 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,因为它不能