NSNotificationCenter观察者的继承是如何工作的?我有一个父类,其他几个类最终成为子类。父类将自己注册为特定通知的观察者。我的印象是,只要您在登记发生时调用超级方法,孩子们也会被注册为观察员。我碰巧把它放到viewDidLoad中。继承和处理NSNotificationCenter
我是否需要重新注册子类也是观察者并重新实现它们的委托方法?
NSNotificationCenter观察者的继承是如何工作的?我有一个父类,其他几个类最终成为子类。父类将自己注册为特定通知的观察者。我的印象是,只要您在登记发生时调用超级方法,孩子们也会被注册为观察员。我碰巧把它放到viewDidLoad中。继承和处理NSNotificationCenter
我是否需要重新注册子类也是观察者并重新实现它们的委托方法?
每个调用-[super viewDidLoad]
的实例都应该最终接收通知。您将不需要重写通知处理方法,因为将调用超类的实现。当然,如果这在子类中还不够,那么你将不得不提供一个覆盖。
您正在注册对象,而不是类,带有通知中心。当您注册通知时,您注册的回调方法在注册的对象上被调用,并且如果您已在子类中重写它,则重写的方法被调用。
如果您在子类中执行此操作,请问问自己是否在子类中调用注册通知的父代码。
这是面向对象编程和继承的核心。
我想你可以在通知中心注册一个班级,但那会很吓人... – 2010-07-19 05:30:48