【问题标题】:How to check if array is null or empty?如何检查数组是空还是空?
【发布时间】:2010-10-18 12:59:47
【问题描述】:

我想检查我的数组是空还是 null,例如,我想在此基础上创建一个条件。

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

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

问候

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:
    if (!array || !array.count){
      ...
    }
    

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

    【讨论】:

    • 它可以工作,但并非完美无缺:array.count 应该是 [array count],因为您没有在这里处理属性 (var)。
    • 不——array.count 在这种情况下很好。无论如何,在语法上。风格上?目前不推荐任何特定标准。
    • 这个和if (!array.count)一样
    • 我认为风格观点的重要性是反对在对象上调用泛型方法的点表示法,所以我和@Rengers 一起讨论这个问题。
    • 为了准确起见@Rengers 和@davidf2281,NSArray.h 将count 声明为属性@property (readonly) NSUInteger count;
    【解决方案2】:
    if ([array count] == 0)
    

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

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

    更新:是的,我知道几年后,count 现在正式成为财产。

    【讨论】:

      【解决方案3】:

      你可以这样试试

      if ([array count] == 0)
      

      【讨论】:

        【解决方案4】:

        最佳性能。

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

        使用大数组的方法。

        【讨论】:

        • 最佳答案。其他人建议使用count 属性,这意味着枚举数组并且可能是大数组的性能问题
        • 我也更喜欢这种方式,因为当我们只想检查数组是否为空时,我们实际上并不关心确切的计数。
        【解决方案5】:

        真的很冗长:)

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

        【讨论】:

          【解决方案6】:
          if (array == (id)[NSNull null] || [array count] == 0) {
              NSLog(@"array is empty");
          }
          

          【讨论】:

            【解决方案7】:

            斯威夫特 3

            在最新版本的 swift 3 中,无法将选项与 > 和

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

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

            根据数组计数

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

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

            【讨论】:

              【解决方案8】:

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

              if (![array count])
              

              '==' 运算符不是必需的。

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  【解决方案10】:

                  null和empty不是一回事,建议区别对待

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

                  【讨论】:

                  • 能否请您简要介绍一下这两种情况之间的区别,在什么情况下会调用哪一种?
                  【解决方案11】:
                  if (array == nil || array.count == 0 || [array isEqaul [NSNull Null]])
                  

                  【讨论】:

                    【解决方案12】:

                    Swift 4

                    if (array.isEmpty) {
                        print("Array is empty")
                    }
                    else{
                        print("Array is not empty")
                    }
                    

                    【讨论】:

                      猜你喜欢
                      • 2012-05-07
                      • 2011-06-30
                      • 2013-05-25
                      • 2011-01-23
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多