1

私は最近NSNotificationsを使い始めました:

[[NSNotificationCenter defaultCenter] postNotificationName: selector: object:]; ....

ビュー コントローラー間で通信するための素晴らしいコンセプトだと思います。NSNotificationアプリ内のすべての通信に sを使用するのは、少し簡単すぎるように思えます。

アプリでほとんどの作業に sを使用する場合NSNotification、それらの多くのオーバーヘッドはどのようになると思いますか?

4

2 に答える 2

7

sについて覚えておく必要があることの 1 つは、NSNotifications がブロック メカニズムであることです。そのため、通知を送信するオブジェクトは誰が受信者であるかを知る必要はありませんが、受信者が多すぎる場合は、postNotification呼び出しが返される前にすべての受信者を処理する必要があります。それはあなたが考慮しなければならないことです。

そのため、@slev が言ったように、デリゲートはより良いアプローチです。デリゲート アプローチを使用できない場合にのみ、通知を使用します。

于 2011-06-09T16:37:40.623 に答える
1

NSNotificationはかなりオーバーヘッドを消費することを読んだことを思い出しているようです。そのため、NSNotificationをたくさん使用するのはおそらく最善の方法ではありません。代わりに、delegateプロトコルの採用を検討します。自分で簡単に作成して、ファイルに何をいつ行うかを指示できます。

このサイトは、デリゲートの作成方法を学ぶために使用したものとかなり似た例を示しており、調べる価値があるかもしれません。デリゲートについて学習するまでは、NSNotificationsを常に使用していましたが、その後、すべての通知をデリゲートメソッドに切り替えました。

于 2011-06-09T16:31:58.903 に答える