我被困在这个问题上。首先,我有一个A类,即父类。B 类继承自 A 类。在 A 类中,我为一些通知添加了观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidBecomeActiveFromBackground) name:UIApplicationDidBecomeActiveNotification object:nil];
我用一些代码行填充方法“appDidBecomeActiveFromBackground”。在B类中,我想对这个处理方法进行更改,所以我重写了这个方法。但实际上,在调用 A 类中的方法时,每次通知触发时都不会调用 B 类中的同名方法。我该如何解决这个问题?在 B 类的方法中,我不调用[super appDidBecomeActiveFromBackground];
,因为我想要不同的实现。
编辑:来自下面的评论
- (void)appDidBecomeActiveFromBackground {
//-to be define
DEBUGLog(@"did become active");
WFFogSponsorVC *fogSponsorVC = [[[WFFogSponsorVC alloc] init] autorelease];
[self presentModalViewController:fogSponsorVC animated:NO];
}
我在父类(基类)的 viewDidLoad 方法中注册观察者,并在 viewWillDisappear 中删除观察者注册以防止多个观察者。
我还想知道如果注册已在父类中实现,如何删除子类中的观察者注册?