2009-04-11 47 views
0

NSNotificationCenter观察者的继承是如何工作的?我有一个父类,其他几个类最终成为子类。父类将自己注册为特定通知的观察者。我的印象是,只要您在登记发生时调用超级方法,孩子们也会被注册为观察员。我碰巧把它放到viewDidLoad中。继承和处理NSNotificationCenter

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

回答

1

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

4

您正在注册对象,而不是,带有通知中心。当您注册通知时,您注册的回调方法在注册的对象上被调用,并且如果您已在子类中重写它,则重写的方法被调用。

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

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

+0

我想你可以在通知中心注册一个班级,但那会很吓人... – 2010-07-19 05:30:48