2016-10-04 6 views
0

私はiOSを初めて使用しています。私はメッセージの受け渡しのためにこれらの2つの方法について知りましたが、私はそれらの間で選択することができません。メッセージの受け渡し、NSNotificationまたは委任のためのiOSの最良のアプローチは何ですか?

+1

1対多の呼び出しで代理人が使用する場合は、1対多の通知で通知を使用する場合 –

+0

[ビューコントローラ間でデータを渡す]可能な複製(http://stackoverflow.com/questions/5210535/passing-data-ビュー間コントローラ) –

+0

要件によって異なります。あるクラスから別のクラスにデータを渡したい場合は、Delegateを使用します。あなたのアプリケーション内にリスナーを追加する場合は、私のビューごとにNotification.Asを追加する要件に応じて異なります。 –

答えて

0

概念的には、デリゲートはヘルパーであり、他のオブジェクトの作業の一部を行うオブジェクトで、単独では実行できません。関与するプロトコルが頻繁に存在し、デリゲートへの参照を持つオブジェクトは、それがあらかじめ定義された方法で動作することを期待しています。少なくとも、呼び出し側クラスのニーズに応じて動作します。

例:UITableViewDelegateのために定義されたすべてのメソッドは、テーブルアクティビティーに固有です。

通知は状態の変更に関するものです。通知を送信するオブジェクトは、作業を行うための助けを必要とせず、反応したい場合の変更について他のオブジェクトに知らせるだけです。他に何も気にしなければ、それはOKです。

例:UIApplicationDidBecomeActiveNotificationを受け取るオブジェクトは、その時点で開発者が必要とするものであれば、UIApplicationに関連するものでなくても構いません。

0

デリゲートパターンは、デリゲートオブジェクトの知識のために使用されます。デリゲートパターンは、クラスデリゲートメソッドが実装されているためです。デリゲートオブジェクトは、あなたがあなたのタスクを実行したい、そのクラスのオブジェクトのリファレンスを含んでいます。

通知パターンでは、単に通知がクラス全体にわたってブロードキャストされ、各クラスはオブザーバメソッドの実装を検索します。したがって、オブザーバメソッドをDelegateパターンと比較して検索するのに時間がかかりました。

関連する問題