如何检查数组是空还是空?

时间:2010-10-18 12:59:48

标签: iphone objective-c

我想检查我的数组是否为空或为空,并且在此基础上我想创建一个条件。

if(array ==  EMPTY){
//do something
}

我希望我清楚我要问的是什么,只需要检查我的数组是否为空?

问候

12 个答案:

答案 0 :(得分:106)

if (!array || !array.count){
  ...
}

检查数组是否为零,如果不是,则检查它是否为空。

答案 1 :(得分:27)

if ([array count] == 0)

如果数组为nil,那么它也将为0,因为nil映射为0;因此检查数组是否存在是不必要的。

此外,您不应该像某些建议那样使用array.count。它可能是 - 工作 - 但它不是一个属性,如果他们知道属性和方法之间的区别,就会驱动任何读取代码的人。

更新:是的,我知道多年以后,伯爵现在正式成为财产。

答案 2 :(得分:10)

你可以这样尝试

if ([array count] == 0)

答案 3 :(得分:7)

只是真的很冗长:)

if (array == nil || array.count == 0)

答案 4 :(得分:5)

最佳表现。

if (array.firstObject == nil)
{
    // The array is empty
}

使用大阵列的方法。

答案 5 :(得分:4)

if (array == (id)[NSNull null] || [array count] == 0) {
    NSLog(@"array is empty");
}

答案 6 :(得分:2)

当nil映射到0,等于NO时,最优雅的方式应该是

if (![array count])

不需要'=='运算符。

答案 7 :(得分:1)

你也可以使用这种测试 if(nrow> 0)。 如果您的数据对象不是正式的数组,它可能会更好。

答案 8 :(得分:1)

null和empty不是一回事,我建议你用不同的方式对待它们

if (array == [NSNull null]) {
    NSLog(@"It's null");
} else if (array == nil || [array count] == 0) {
     NSLog(@"It's empty");
}

答案 9 :(得分:1)

Swift 3

与最新版本的swift 3一样,将选项与

仍然可以将选项与==进行比较,因此检查可选数组是否包含值的最佳方法是:

if array?.isEmpty == false {
    print("There are objects!")
}

根据数组计数

if array?.count ?? 0 > 0 {
    print("There are objects!")
}

还有其他方法可以在这里查看 link to the answer

答案 10 :(得分:0)

if (array == nil || array.count == 0 || [array isEqaul [NSNull Null]])

答案 11 :(得分:0)

在Swift 4中

if(array.isEmpty){

        print("Array is empty")
    }
    else{
        print("Array is not empty")
    }