【发布时间】:2010-10-18 12:59:47
【问题描述】:
我想检查我的数组是空还是 null,例如,我想在此基础上创建一个条件。
if(array == EMPTY){
//do something
}
我希望我清楚我在问什么,只需要检查我的数组是否为空?
问候
【问题讨论】:
标签: iphone objective-c
我想检查我的数组是空还是 null,例如,我想在此基础上创建一个条件。
if(array == EMPTY){
//do something
}
我希望我清楚我在问什么,只需要检查我的数组是否为空?
问候
【问题讨论】:
标签: iphone objective-c
if (!array || !array.count){
...
}
检查数组是否不为零,如果不是 - 检查它是否不为空。
【讨论】:
array.count 应该是 [array count],因为您没有在这里处理属性 (var)。
array.count 在这种情况下很好。无论如何,在语法上。风格上?目前不推荐任何特定标准。
if (!array.count)一样
@property (readonly) NSUInteger count;
if ([array count] == 0)
如果数组为 nil,则它也是 0,因为 nil 映射到 0;因此检查数组是否存在是不必要的。
另外,您不应该像某些人建议的那样使用 array.count。它可能 - 工作 - 但它不是一个属性,如果他们知道属性和方法之间的区别,就会让任何阅读你的代码的人发疯。
更新:是的,我知道几年后,count 现在正式成为财产。
【讨论】:
你可以这样试试
if ([array count] == 0)
【讨论】:
最佳性能。
if (array.firstObject == nil)
{
// The array is empty
}
使用大数组的方法。
【讨论】:
count 属性,这意味着枚举数组并且可能是大数组的性能问题
真的很冗长:)
if (array == nil || array.count == 0)
【讨论】:
if (array == (id)[NSNull null] || [array count] == 0) {
NSLog(@"array is empty");
}
【讨论】:
斯威夫特 3
在最新版本的 swift 3 中,无法将选项与 > 和
仍然可以用 == 比较可选项,因此检查可选项数组是否包含值的最佳方法是:
if array?.isEmpty == false {
print("There are objects!")
}
根据数组计数
if array?.count ?? 0 > 0 {
print("There are objects!")
}
还有其他方法,可以在这里查看 link to the answer
【讨论】:
当 nil 映射到 0 时,等于 NO,最优雅的方式应该是
if (![array count])
'==' 运算符不是必需的。
【讨论】:
您也可以使用 如果(nrow>0)。 如果您的数据对象不是正式的数组,它可能会更好。
【讨论】:
null和empty不是一回事,建议区别对待
if (array == [NSNull null]) {
NSLog(@"It's null");
} else if (array == nil || [array count] == 0) {
NSLog(@"It's empty");
}
【讨论】:
if (array == nil || array.count == 0 || [array isEqaul [NSNull Null]])
【讨论】:
在 Swift 4
if (array.isEmpty) {
print("Array is empty")
}
else{
print("Array is not empty")
}
【讨论】: