Xcode NSNotificationCenter应用程序IDBecMeactivateNotification不工作iOS 9
我正在尝试调用一个函数,当应用程序com通过ApplicationIDBecMeactiveNotification返回前台时。我在iOS 8和iOS 7中都有它,而且运行良好。但不是在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
-(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]