【发布时间】:2013-06-30 20:02:54
【问题描述】:
这应该很简单,但事实证明对我来说很有挑战性。我想知道计算[NSDate date] 和未来事件x 秒之间的秒数差异的最佳方法。有几种不同类型的事件,每个事件可能一天发生几次,并且在不同的时间发生,具体取决于它恰好是一周中的哪一天。
我想做的是让用户从选择器中选择一个事件类型,然后根据他们的选择在通知中心为该事件的下一次发生设置警报。除了秒计算外,我一切正常。
例如,假设现在是星期一上午 9 点。我想确定从现在到用户选择的事件之间的秒数,该事件在每周二、周四和周六每天上午 10 点、下午 4 点和晚上 11 点或周日下午 1 点定期发生。您将如何最有效地处理这个问题?
【问题讨论】:
-
最有效?因此,您编写了一些确实有效但效率极低的代码,以至于占用了您 iPhone 的所有 RAM 和 CPU,现在您正在寻找更高效的方法吗?
-
没有显示一行代码的讨论有什么意义?还是只是另一个“给我代码”?
-
不,我想知道最好的方法是什么。我可以写很多复杂的条件逻辑,然后把它放在一个循环中迭代询问'下一次发生的事件现在发生了吗?基于此的时间并从该结果中减去当前时间。然而,这似乎过于笨拙,我正在寻找更优雅的解决方案。
-
@RayRichards 你可以,但你为什么要打电话给
[aDate timeIntervalSinceDate:anotherDate]? -
谢谢 H2CO3,我想我的问题是我事先不知道 anotherDate 会是什么,只是事件有规律地发生,每天多次,时间不同,具体取决于日期一周中的。所以我想我的困难在于确定该变量的值。我想我只是有一个心理障碍!
标签: cocoa cocoa-touch nsdate nscalendar date-arithmetic