如何检查变量是否为零

时间:2015-02-04 09:04:03

标签: swift

我有一个变量

var a: [AnyObject? -> Void] 

我正在通过append方法向其中添加数据。现在我想检查变量是否为零。我尝试使用[]但没有工作,也尝试了"",这也没有用,任何人都可以告诉这个变量的含义以及如何检查它是否为零。

6 个答案:

答案 0 :(得分:12)

据我所知,var a是一个函数数组,它接受任何类型的可选Object,并返回void。所以这些函数的参数是可选的,但是数组本身不是:它不能是nil,或者它会被声明为[AnyObject? -> Void]?,不是吗?

编辑:但是,如果您将此a声明为可选(但为什么会这样做?) - 添加? - 您检查可选的存在与if let

if let b = a {
// a not nil, do some stuff
} else {
// a is null
}

如果您只想检查数组是否为空,请使用Swift Array中的isEmpty方法

答案 1 :(得分:5)

更新: Xcode 7.3 Swift 2.2

如果你想检查变量是否为零,你应该使用if let towwrap if you for you。无需创建第二个var。

let str = "123"
var a = Int(str)        
if let a = a {
    print(a)
}

或者

if let a = Int(str) {
    print(a)
}

答案 2 :(得分:2)

在Swift中,nil不是指针 - 它缺少某种类型的值。任何类型的可选项都可以设置为nil,而不仅仅是对象类型。

因此,您可以使用以下代码进行检查:

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()

if convertedNumber != nil {
    println("convertedNumber contains some integer value.")
}
// prints "convertedNumber contains some integer value."

有关详情,请参阅 nil

答案 3 :(得分:1)

在Swift 3.0中

if let imageURL = dictObj["list_image"] as? String {
   print(imageURL)
}

答案 4 :(得分:0)

如果让我们可以使用。如果let是Swift中的一个特殊结构,它允许你检查一个Optional是否包含一个值,以及它是否存在 - 用unwrapped值做一些事情。

var a:Int=0
if let b=a{
   println(a)
} else {
   println("Value - nil")
}

但对于字符串,您还可以使用.isEmpty()如果您已将其初始化为""

var str:String=""
if !str.isEmpty(){
   println(str)
}

答案 5 :(得分:0)

对我来说,当我使用AVFoundation对象时,上述解决方案都没有奏效。

当我尝试awk -F':' -v search="${input_name}" '$2 ~ search {print $0}' temp_phonebook 时,我会得到Type 'AVCaptureDeviceInput does not conform to protocol 'BooleanType',我会得到if (audioDeviceInput)

我的情况下的解决方案

Binary operator '!=' cannot be applied to operands of type 'AVCaptureDeviceInput' and 'nil'

if (audioDeviceInput.isEqual(nil)) 是一个像任何其他指针一样的指针,可以这样引用,这就是为什么这样做的原因。