获取有关iOS时区变化的通知

use*_*826 14 iphone objective-c ipad ios ios5

我的应用程序可以在设备时区更改时收到通知吗?我希望在我的应用程序是前台时收到通知.NSTimezone对我不起作用,因为我必须不断检查时区.

Dav*_*ist 24

UIApplicationDelegate有一个applicationSignificantTimeChange:被调用的方法,当时间发生重大变化时会被调用.

文档中列出的示例包括:

重要时间变化的示例包括午夜的到来,运营商更新时间以及夏令时的变化

但我认为时区变化算是一个重要的时间变化.

文档还说,如果时间更改发生在您的应用程序在后台时,您将在前往前台时获得它

如果您的应用程序当前处于挂起状态,则此消息将排队,直到您的应用程序返回到前台,此时它将被传递.

您还可以收听UIApplicationSignificantTimeChangeNotification发布,以便在应用中的其他任何位置获取相同的信息.


Jur*_*tas 14

听听 NSSystemTimeZoneDidChangeNotification.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeZoneChanged) name: NSSystemTimeZoneDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

并记得取消注册,例如在dealloc方法中.

[[NSNotificationCenter defaultCenter] removeObserver:self name:NSSystemTimeZoneDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)