繁体   English   中英

检查NSURLConnection变量不是nil

[英]check NSURLConnection variable is not nil

我是swift的新手,我想找到NSURLConnection变量是否为零。 我们在Objective c中使用了以下代码。

   if (urlConnection) {
         // Do somethings
    }

但如果我在swift中同样相同,它会给我一些错误


“类型NSURLConnection剂量不符合协议'BooleanType'”

如果你的urlConnection输入了NSURLConnection? 然后你可以通过这样做来检查它

if (urlConnection != nil) {
   // Do somethings
}

如果你的urlConnection它的类型为NSURLConnection那么它永远不会为零

if let data = urlConnection{
    //is not not nil
}
else{
    //is nil
}

如果你只是想检查它是否为非零, urlConnection != nil就可以了。 请注意,如果urlConnection不是可选的,则无法将其检查为nil。 这是一件好事 如果在Swift中某些东西不是可选的,则意味着它不可能是nil,它必须有一个值,因此检查是多余的 - 不需要它,你可以自由地使用该值而无需检查它。

但是,您很可能想要检查它是否为零,如果不是,则使用它。 在这种情况下,您想要:

if let urlcon = urlConnection {
    // urlcon will be the “unwrapped” non-nil value 
}
else {
    // if you want handling code for it it’s nil, it goes here
}

或者,如果您不关心处理值不是nil,则以下内容可能适用于您的用例:

urlConnection?.doSomething()

这测试urlConnection是否为非零,如果是,则调用doSomething() 需要注意的一点是,从doSomething() 返回的任何值都将包含在一个可选项中,因为urlConnection可能是nil,因此可能没有结果可供查看。

您可能偶尔会看到有人建议:

if urlConnection != nil {
    urlConnection!.something()
}

如果您这样做,请不要接受此人的建议,并不惜一切代价避免使用他们的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM