【问题标题】:Is it possible to call past date UILocal Notification?是否可以调用过去日期的 UILocal 通知?
【发布时间】:2013-05-27 14:45:35
【问题描述】:

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

例如:

我必须将“设置”上的日期更改为 June-15-2013,然后我必须将日期更改为 June-05-2013。本地通知未要求(6 月 1 日至 6 月 15 日)。 6 月 16 日之后工作正常。

我的问题是

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

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

请帮助我。提前致谢。

【问题讨论】:

    标签: iphone ios xcode uilocalnotification


    【解决方案1】:

    Apple 文档声明

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

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

    我认为您的情况也很特殊,因为您手动更改了设备日期设置。更改时区时可能会更改日期设置,但您的情况不同,您没有更改时区,您只是更改日期,我认为您的新日期之前(过去)的本地通知将被忽略。

    【讨论】:

      【解决方案2】:

      嗯,这是我在对应用程序的健壮性进行 cam 测试时遇到的情况之一。我的应用程序还发布了未来日期的通知。一切顺利,如果用户不更改日期。但作为测试的一部分,将日期更改为未来和过去会禁用一些本应出现的通知。

      我解决这种情况的方法是响应 application Delegate

      中的以下回调
      -(void)applicationSignificantTimeChange:(UIApplication *)application
      

      在这里,我根据当前日期的要求重新发布了所有通知。这在我的情况下起到了作用。这是一个繁重的解决方案,因为所有通知都必须删除并重新发出,但对我来说是必需的。

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

      【讨论】:

      • 嗨阿琼内特。感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      相关资源
      最近更新 更多