当iPaddate时间设置更改时通知应用程序

我想知道当ipad的date时间设置更改。 有什么办法吗?

我正在使用NSDateFormatter来查找是否iPad / iPhone的时间模式是12或24小时格式。 NSDateFormatter似乎需要很多时间(在时间分析中看到)。 所以我想检查使用它只有当设置被改变。

你可以用两种方法来做到这一点:

  1. 在您的应用程序委托中实现- (void)applicationSignificantTimeChange:(UIApplication *)application程序。
  2. 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

如何添加一个观察者NSCurrentLocaleDidChangeNotification ? 每个Apple,“每当当前区域设置信息更改时,重新创build任何caching的date和数字格式化程序对象。

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