【问题标题】:How can I ensure all NSDate's in my project have no sub-second components?如何确保我的项目中的所有 NSDate 都没有亚秒级组件?
【发布时间】:2011-11-01 07:09:26
【问题描述】:

确保我的项目中的所有 NSDate 都没有亚秒级组件的最佳方法是什么?

背景 - 使用“[NSDate date]”在其基础上创建了各种日期,例如然后设置小时/分钟等,但没有意识到亚秒组件仍然存在。

objective-c 中让 NSDate 只工作到最接近秒的效果的最简单方法是什么? (例如,类别、NSDate 的子分类、仅在创建日期时手动等)

【问题讨论】:

标签: iphone objective-c ios nsdate


【解决方案1】:
NSDate *roundDate = [NSDate dateWithTimeIntervalSinceReferenceDate:round([fractionalDate timeIntervalSinceReferenceDate])];

您可以添加一个 NSDate 类别,以您认为最方便的任何方式执行此操作。

【讨论】:

  • 感谢 Rob - 有没有办法以一种方式透明地“覆盖”“NSDate date”类方法,如果您忘记或只是键入 [NSDate date],它会在您项目的任何地方给你圆角的版本?这会是一个以某种方式应用于项目中每个类的类别吗? (即,如果您忘记了导入语句,那么您的 [NSDate 日期] 可能指的是原始版本而不是覆盖的版本,否则使用类别是否正确?)
  • Cocoa 的内部部分可能依赖于正常版本的 [NSDate date]。改变它是个坏主意。
猜你喜欢
  • 1970-01-01
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
相关资源
最近更新 更多