2009-04-11 45 views
0

NSNotificationCenter觀察者的繼承是如何工作的?我有一個父類,其他幾個類最終成爲子類。父類將自己註冊爲特定通知的觀察者。我的印象是,只要您在登記發生時調用超級方法,孩子們也會被註冊爲觀察員。我碰巧把它放到viewDidLoad中。繼承和處理NSNotificationCenter

我是否需要重新註冊子類也是觀察者並重新實現它們的委託方法?

回答

1

每個調用-[super viewDidLoad]的實例都應該最終接收通知。您將不需要重寫通知處理方法,因爲將調用超類的實現。當然,如果這在子類中還不夠,那麼你將不得不提供一個覆蓋。

4

您正在註冊對象,而不是,帶有通知中心。當您註冊通知時,您註冊的回調方法在註冊的對象上被調用,並且如果您已在子類中重寫它,則重寫的方法被調用。

如果您在子類中執行此操作,請問問自己是否在子類中調用註冊通知的父代碼。

這是面向對象編程和繼承的核心。

+0

我想你可以在通知中心註冊一個班級,但那會很嚇人... – 2010-07-19 05:30:48