如何检查数组是否为空或空?

我想检查,如果我的数组是空的或空的,并基于我想创build一个条件为例。

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

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

问候

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

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

 if ([array count] == 0) 

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

此外,你不应该使用array.count一些build议。 它可能会 – 工作,但它不是一个财产,并会驱使任何读取你的代码坚果,如果他们知道属性和方法之间的差异。

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

你可以试试这个

 if ([array count] == 0) 

只是要真正详细:)

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

由于苹果将新的firstObject属性添加到NSArray,这也适用。

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

由于零映射到0,这等于NO ,最优雅的方式应该是

 if (![array count]) 

'=='运算符是没有必要的。

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

null和empty是不一样的东西,我build议你用不同的方式对待它们

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

Swift 3

正如在swift 3的最新版本中,比较可选项与>和<的function是不可行的

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

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

按arrays计数

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

还有其他的方法也可以在这里查看链接到答案

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