私はiOSを初めて使用しています。私はメッセージの受け渡しのためにこれらの2つの方法について知りましたが、私はそれらの間で選択することができません。メッセージの受け渡し、NSNotificationまたは委任のためのiOSの最良のアプローチは何ですか?
0
A
答えて
0
概念的には、デリゲートはヘルパーであり、他のオブジェクトの作業の一部を行うオブジェクトで、単独では実行できません。関与するプロトコルが頻繁に存在し、デリゲートへの参照を持つオブジェクトは、それがあらかじめ定義された方法で動作することを期待しています。少なくとも、呼び出し側クラスのニーズに応じて動作します。
例:UITableViewDelegate
のために定義されたすべてのメソッドは、テーブルアクティビティーに固有です。
通知は状態の変更に関するものです。通知を送信するオブジェクトは、作業を行うための助けを必要とせず、反応したい場合の変更について他のオブジェクトに知らせるだけです。他に何も気にしなければ、それはOKです。
例:UIApplicationDidBecomeActiveNotification
を受け取るオブジェクトは、その時点で開発者が必要とするものであれば、UIApplication
に関連するものでなくても構いません。
0
デリゲートパターンは、デリゲートオブジェクトの知識のために使用されます。デリゲートパターンは、クラスデリゲートメソッドが実装されているためです。デリゲートオブジェクトは、あなたがあなたのタスクを実行したい、そのクラスのオブジェクトのリファレンスを含んでいます。
通知パターンでは、単に通知がクラス全体にわたってブロードキャストされ、各クラスはオブザーバメソッドの実装を検索します。したがって、オブザーバメソッドをDelegateパターンと比較して検索するのに時間がかかりました。
関連する問題
- 1. オブジェクトへのインターフェイスの受け渡し、またはCocoaでの委任の使用?
- 2. IOSのための最良のQRリーダーライブラリは何ですか?
- 3. メッセージの受け渡しは何を意味しますか? httpまたはudp
- 4. ライブ処理と更新のための最良のアプローチは何ですか?
- 5. iOSアプリケーションを構築するためのAutolayoutの最良のアプローチですか?
- 6. IOS:2のための委任方法のtableView
- 7. 文書を手渡すための最良の方法は何ですか?
- 8. iosアプリケーションのフロントエンドを開発するための良いアプローチは何でしょうか?
- 9. バリデータからフィールドを抽出するための最良のアプローチ
- 10. (C++のコンストラクタを委任)または{}
- 11. 角度2から、最良のアプローチは何ですか?
- 12. メッセージキューを使用したプロセス間でのメッセージの受け渡し
- 13. ウェブ、アンドロイド、iOSアプリケーションのためのAPIを作成するための最良のアプローチ
- 14. winformsのコントロールに参加するための最良のアプローチ
- 15. プロセス間でのメッセージの受け渡し
- 16. MVCパーシャルビューは、複数のモデルを1つのビューにまとめるための最良のアプローチですか?
- 17. ブラウザは、サーバーから多くのメッセージを受信するための最良かつ最速の方法は何ですか?
- 18. Magento - 複数のホワイトラベルストアを扱うための最良のアプローチ
- 19. WPF/SL - ICommandの派生または委譲からExecute/CanExecuteへの委任
- 20. OOP - C#でのメッセージ受け渡し
- 21. フラグメントトランザクションのためのより良いアプローチ
- 22. ダイアログチェーンの問題(メッセージの受け渡し)
- 23. ビューへのメッセージの受け渡し
- 24. 目的地cでのセッションの非アクティブ化のためのnsnotificationアプローチ
- 25. ios appモジュール化のための最善の設計アプローチ
- 26. 最高のAjaxアプローチは何ですか?
- 27. RabbitMQはキューの最初のメッセージだけを受信します
- 28. HTML 5ベースのモバイル開発のための最良のフレームワークは何ですか?
- 29. 信頼性の低いネットワークのための最良のトランスポートタイプは何ですか?
- 30. アンドロイドクライアント間のリアルタイムコミュニケーションのための最良の方法は何ですか?
1対多の呼び出しで代理人が使用する場合は、1対多の通知で通知を使用する場合 –
[ビューコントローラ間でデータを渡す]可能な複製(http://stackoverflow.com/questions/5210535/passing-data-ビュー間コントローラ) –
要件によって異なります。あるクラスから別のクラスにデータを渡したい場合は、Delegateを使用します。あなたのアプリケーション内にリスナーを追加する場合は、私のビューごとにNotification.Asを追加する要件に応じて異なります。 –