当 iPad 日期时间设置更改时通知应用程序

Posted

技术标签:

【中文标题】当 iPad 日期时间设置更改时通知应用程序【英文标题】:Notify app when iPad date time settings changed 【发布时间】:2012-12-06 10:27:22 【问题描述】:

我想在 ipad 的日期时间设置更改时收到通知。有什么办法吗?

我正在使用 NSDateFormatter 来查找 iPad/iphone 时间模式是 12 小时还是 24 小时格式。 NSDateFormatter 似乎需要很多时间(在时间分析中看到)。所以我想检查仅在更改设置时使用它。

【问题讨论】:

【参考方案1】:

您可以使用两种方式来做到这一点:

    在您的应用委托中实现 - (void)applicationSignificantTimeChange:(UIApplication *)application

    UIApplicationSignificantTimeChangeNotification添加观察者

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeChanged:) name:UIApplicationSignificantTimeChangeNotification object:nil];

applicationSignificantTimeChange:

当时间发生重大变化时通知代表。 - (void)applicationSignificantTimeChange:(UIApplication *)application

参数

应用程序

The delegating application object.

讨论

重大时间变化的示例包括午夜的到来, 运营商的时间更新,以及夏令时的更改 时间。委托可以实现这个方法来调整任何对象 显示时间或对时间变化敏感的应用程序。

在调用此方法之前,应用程序还会发布一个 UIApplicationSignificantTimeChangeNotification 通知给 感兴趣的对象有机会响应变化。

如果您的应用程序当前处于挂起状态,则此消息将排队 直到您的应用程序返回到前台,此时它是 发表。如果发生多次时间变化,只有最近的一次是 发表。可用性

Available in ios 2.0 and later.

在 UIApplication.h 中声明

更多请查看UIApplicationDelegate_Protocol

【讨论】:

接受详细回答。谢谢!!。【参考方案2】:

为NSCurrentLocaleDidChangeNotification 添加一个观察者怎么样?根据 Apple,“只要当前区域设置信息发生更改,就重新创建任何缓存的日期和数字格式化程序对象。”

【讨论】:

【参考方案3】:

您可能还想收听此通知: NSSystemTimeZoneDidChangeNotification

【讨论】:

以上是关于当 iPad 日期时间设置更改时通知应用程序的主要内容,如果未能解决你的问题,请参考以下文章

iPhone iOS:本地通知未出现

如何一次在本地通知中将日期数组设置为fireDate

更改时设置为选定周的星期一

SQL 日期过滤器:当开始日期 = 结束日期时返回结果

是否可以在docker容器中更改日期?

当设置通过另一个更改时,如何通知应用程序