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

Vig*_*esh 3 iphone cocoa objective-c ipad ios

我希望在更改ipad的日期时间设置时收到通知.那有什么办法吗?

我正在使用NSDateFormatter来查找iPad/iphone时间模式是12或24小时格式.NSDateFormatter似乎需要花费大量时间(见时间分析).所以我想检查只在更改设置时才使用它.

Mid*_* MP 14

你可以用两种方式做到:

  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.
Run Code Online (Sandbox Code Playgroud)

讨论

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

在调用此方法之前,应用程序还会发布UIApplicationSignificantTimeChangeNotification通知,以便为感兴趣的对象提供响应更改的机会.

如果您的应用程序当前处于挂起状态,则此消息将排队,直到您的应用程序返回到前台,此时它将被传递.如果发生多个时间更改,则仅传递最新的时间.可用性

Available in iOS 2.0 and later.
Run Code Online (Sandbox Code Playgroud)

在UIApplication.h中声明

有关更多信息,请查看UIApplicationDelegate_Protocol


Mar*_*rco 7

如何为NSCurrentLocaleDidChangeNotification添加观察者?Per Apple,"每当当前的语言环境信息发生变化时,重新创建任何缓存的日期和数字格式化程序对象."