Xcode NSNotificationCenter应用程序IDBecMeactivateNotification不工作iOS 9

Xcode NSNotificationCenter应用程序IDBecMeactivateNotification不工作iOS 9,xcode,nsnotificationcenter,viewwillappear,ios9,Xcode,Nsnotificationcenter,Viewwillappear,Ios9,我正在尝试调用一个函数,当应用程序com通过ApplicationIDBecMeactiveNotification返回前台时。我在iOS 8和iOS 7中都有它,而且运行良好。但不是在iOS 9中?当你第一次打开应用程序时,它会给你打电话 -(void) viewWillAppear:(BOOL)animated { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationD

我正在尝试调用一个函数,当应用程序com通过ApplicationIDBecMeactiveNotification返回前台时。我在iOS 8和iOS 7中都有它,而且运行良好。但不是在iOS 9中?当你第一次打开应用程序时,它会给你打电话

-(void) viewWillAppear:(BOOL)animated {

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(applicationDidBecomeActiveNotification:)
 name:UIApplicationDidBecomeActiveNotification
 object:[UIApplication sharedApplication]]; 

}

- (void)applicationDidBecomeActiveNotification:(NSNotification *)notification {

//stuff

}

每个通知中心在启动时都没有调用…

我遇到了同样的问题,对我来说,将addObserver代码移动到awakeFromNib是有效的。另一种解决方案是向addObserver添加延迟,如下例所示:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];
});

我遇到了同样的问题,对我来说,将addObserver代码移动到awakeFromNib是有效的。另一种解决方案是向addObserver添加延迟,如下例所示:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];
});

这就是你需要的

NSNotificationCenter.defaultCenter().addObserverForName(UIApplicationDidBecomeActiveNotification, object: nil, queue: nil) { note in
    self.applicationDidBecomeActiveNotification(note)
}

这就是你需要的

NSNotificationCenter.defaultCenter().addObserverForName(UIApplicationDidBecomeActiveNotification, object: nil, queue: nil) { note in
    self.applicationDidBecomeActiveNotification(note)
}

您可能希望改为在viewDidLoad中注册。另外,尝试在对象:参数中传递nil,而不是
[UIApplication sharedApplication]
。您可能希望改为在viewDidLoad中注册。另外,在object:argument中尝试传递nil而不是
[UIApplication sharedApplication]