检查NSURLConnection变量不是nil

时间:2015-03-05 13:15:35

标签: ios swift

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

   if (urlConnection) {
         // Do somethings
    }

但是,如果我在swift中同样相同,它会给我一个像

这样的错误
  


"类型NSURLConnection剂量不符合方案   ' BooleanType'"

3 个答案:

答案 0 :(得分:0)

如果您的urlConnection输入了NSURLConnection?,那么您可以通过这样做来检查

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

如果你的urlConnection输入了NSURLConnection,那么它永远不会为零

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果您只是想检查它是否为非零,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()获得的任何值 back 都将包含在一个可选项中,因为urlConnection可能是nil,因此可能没有结果看看。

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

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

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