是否可以调用过去的日期UILocal通知?

时间:2013-05-27 14:45:35

标签: iphone ios xcode uilocalnotification

我必须在接下来的30天(2013年6月1日至2013年6月30日至2013年6月30日)添加本地通知。

例如:

我必须将“设置”上的日期更改为2013年6月15日,然后我必须将日期更改为2013年6月5日。当地通知没有被要求(6月1日至6月15日)。 6月16日之后工作正常。

我的问题是

1)UILocalNotification对过去日期的任何限制?

2)是否可以触发过去日期的本地通知?

请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:3)

Apple docs表示

  

如果指定的值为nil或者是过去的日期,则为   通知立即发送。

因此,如果您在过去设置本地通知的fireDate,则会立即触发通知。

此外,我认为这是一个特殊的情况因为您手动更改设备日期设置。更改时区时可能会更改日期设置但您的情况不同,您没有更改时区,只是更改日期,我认为忽略之前(过去)新日期的本地通知。< / p>

答案 1 :(得分:2)

嗯,这是我在对应用程序的稳健性进行凸轮测试时遇到的情况之一。我的应用程序还发布了未来日期的通知。一切顺利,如果用户没有更改日期。但作为测试的一部分,将日期更改为将来然后更改会禁用一些假设出现的通知。

我解决这种情况的方式是回应以下回调应用程序代表

-(void)applicationSignificantTimeChange:(UIApplication *)application

在这里,我根据当前日期的要求重新发出了所有通知。这就是我的理由。这是一个沉重的解决方案,因为所有通知都必须删除并重新发布,但我需要这样做。

还有一个案例,您可能需要重新同步通知。当应用关闭时,用户可能也更改了日期。为此,我让应用程序在每次启动时重新同步通知。您可以通过检查日期是否发生重大变化来优化此方法。