【问题标题】:NSDateFormatter return (null) string when NSDate is nil当 NSDate 为 nil 时,NSDateFormatter 返回 (null) 字符串
【发布时间】:2016-02-23 02:02:36
【问题描述】:

我使用日期格式化程序来获取新字符串,但在某些情况下 startDate 可以为零。

resultDate = [NSString stringWithFormat:@"%@", [formatter stringFromDate:startDate]];

然后 resultDate 得到 (null) 字符串(NSTaggedPointerString),但如果格式化程序将 nil 作为日期参数,我希望得到 nil。

【问题讨论】:

  • 你为什么用stringWithFormat:stringFromDate:的输出已经是一个字符串了?
  • @rckoenes 对不起,这是复制粘贴,我用它来合并几个字符串,但是谢谢

标签: ios objective-c nsstring nsdate nsdateformatter


【解决方案1】:

当前接受的答案实际上并不正确。

stringFromDate 确实返回 nil,当您传递 nil 日期时。

你的字符串是“(null)”的原因是因为[NSString stringWithFormat:"%@", nil]返回字符串“(null)”

【讨论】:

  • 不知道我是怎么错过的......谢谢,很好的答案。
【解决方案2】:

NSDateFormatter 上的 stringFromDate 实例方法期待 (nonnull NSDate *) 并返回 NSString * _Nonnull

_Nonnull 关键字指定 stringFromDate 将始终返回 NSString * 并且从不返回 nil,因此在 nil 日期 stringFromDate 将返回字符串 "null"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2011-03-07
    相关资源
    最近更新 更多