继承和处理NSNotificationCenter

时间:2009-04-11 01:08:29

标签: objective-c oop inheritance

NSNotificationCenter观察者的继承如何工作?我有一个父类,其他几个类最终继承子类。父类将自身注册为特定通知的观察者。我的印象是,只要你调用注册发生的超级方法,孩子们也会被注册为观察员。我碰巧将它放入viewDidLoad。

我是否需要重新注册子类,也是观察者并重新实现他们的委托方法?

2 个答案:

答案 0 :(得分:4)

您正在使用通知中心注册对象,而非。当您注册通知时,您注册的回调方法将在注册的对象上调用,如果您在子类中重写它,则会调用重写的方法。

如果您在子类中执行此操作,请问自己是否在子类中调用了父代的注册通知代码。

这是面向对象编程和继承的核心。

答案 1 :(得分:1)

每个调用-[super viewDidLoad]的实例都应该收到通知。您不需要覆盖通知处理方法,因为将调用超类的实现。当然,如果在子类中这还不够,那么你必须提供覆盖。