在iOS 9中,以下用于检测通知的代码不会触发选择器方法。在以前的版本(例如8.4)中,它运行得很好。有人知道为什么吗?
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive)name:UIApplicationDidBecomeActiveNotification object:nil];..。
- (void)applicationDidBecomeActive
{
NSLog(@"1");
}AppDelegate.m
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"2");
}发布于 2015-09-19 17:23:59
我在AppDelegate中注册UIApplicationDidBecomeActiveNotification:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleDidBecomeActive)
name: UIApplicationDidBecomeActiveNotification
object: nil];
...
}选择器handleDidBecomeActive将在启动应用程序的开始时直接调用。
-(void)handleDidBecomeActive
{
NSLog(@"AppDelegate: didBecomeActive");
}这在iOS9中有效。
我尝试在稍后创建的类中获取UIApplicationDidBecomeActiveNotification (连接到rootViewController)。在这种情况下,不会调用专用选择器。这在iOS8中是有效的。
https://stackoverflow.com/questions/32246409
复制相似问题