【问题标题】:Check to see if NSDate holds a date or is empty检查 NSDate 是否包含日期或为空
【发布时间】:2011-01-25 02:27:11
【问题描述】:

查看 NSDate 是否实际设置为日期或为空的最佳方法是什么?返回其描述或将其更改为字符串返回“(null)”...?

谢谢。

【问题讨论】:

    标签: iphone objective-c nsdate


    【解决方案1】:

    如果它没有日期,那么你有一个 nil 指针,所以很简单

    if (!date) {
        ...
    }
    

    或更明确地

    if (date == nil) {
        ...
    }
    

    【讨论】:

      【解决方案2】:

      如果您想查看NSDate(或任何对象)的实例是否为nil,只需将其与nil 进行比较即可。非空的NSDate 对象永远不会为空;它总是包含一个日期。 -init+date 都返回一个初始化为当前日期和时间的 NSDate 对象,并且没有其他方法可以创建此类的实例。

         if(someData == nil) {
            // do stuff
         }
      

      【讨论】:

      • 谢谢,我确实试过这个,但不知道,有些东西搞砸了,虽然条件有效,但我后面的代码会出现问题。我正在使用检查将不同的数据放入表格单元格中。对我有用的是将日期更改为字符串并检查它是否为“(null)”。令人惊讶的是,这给出了正确的结果。我不知道一个简单的检查会如何影响以后构建单元格的代码。因为除了 if 条件,我没有做任何不同的事情。
      • 我们需要查看代码来帮助您。如果没有其他问题,您说的话是不可能的。
      • Marc,谢谢,但我实际上发现了问题所在。是的,问题出在其他东西上,if 条件与它的关系不大。 :)
      • Marc... 不知道您为什么说非空 NSDate 永远不会为空。我现在处于核心数据中的字段被定义为 NSDate 的情况,当我在 LLDB 打印该字段时,它确实说日期是 nil,但是当我专门检查 nil 时,它声称它不是.但是,如果我用 isnan(date-in-question) 检查日期,我会得到一个结果,“是的,这不是一个数字”
      猜你喜欢
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多