2009-04-11 12 views
0

NSNotificationCenterオブザーバの継承はどのように機能しますか?私はいくつかの他のクラスがサブクラス化を終了する親クラスを持っています。親クラスは、特定の通知のオブザーバとして自身を登録します。私は、登録が行われるスーパーメソッドを呼び出す限り、子どももオブザーバーとして登録されるという印象を受けました。私はそれをviewDidLoadに配置します。NSNotificationCenterの継承と対処

子クラスをオブザーバーに再登録する必要がありますか?その代理メソッドを再実装しますか?

答えて

1

-[super viewDidLoad]を呼び出す各インスタンスは、最終的に通知を受け取るはずです。スーパークラスの実装が呼び出されるときに、通知処理メソッドをオーバーライドする必要はありません。もちろん、それがサブクラスで十分でない場合は、オーバーライドを提供する必要があります。

4

オブジェクトではなく、クラスで、通知センターがあります。通知を登録すると、登録するコールバックメソッドが登録されたオブジェクトで呼び出され、サブクラスでオーバーライドした場合は、オーバーライドされたメソッドが呼び出されます。

サブクラスでこれを行う場合は、通知用に登録する親のコードがサブクラスで呼び出されているかどうか確認してください。

これは、すべてオブジェクト指向プログラミングと継承の中心です。

+0

あなたは通知センターでクラスを登録することができますが、それは恐ろしいことでしょう... –