Objective-Cのデリゲートは、オブジェクトのイベントリスナーでいっぱいのクラスとして定義されていますか?Objective-Cのデリゲートは、基本的にイベントリスナーでいっぱいのクラスですか?
答えて
完全には正確ではありませんが、それはそれを考える方法の1つかもしれません。デリゲートは、指定されたオブジェクトのコールバックを処理します。これらはイベントかもしれないし、そうでないかもしれない。
何らかの値を返す任意のメソッドですか? ? – Graham
いいえtableViewデリゲートを取るviewControllerがtableViewを描画しているときに、描画するセルを知る必要があるため、tableView:cellForRowAtIndexPath:というコールバックメソッドでデリゲートをクエリし、指定された行のセル(indexPathの形式でメソッドに渡されます)。これを状態を返すように呼び出すこともできますが、より一般的に考えるべきです。コールバックメソッドは理論的には何かに責任があります。 – jakev
デリゲートのように動作すると思って、 'tableView:cellForRowAtIndexPath:'は技術的にデリゲートではありません。これは 'UITableViewDataSource'プロトコルの一部です。デリゲートプロトコル*は典型的にすべてのオプションメソッドで構成されていますが、データソースプロトコルのようなものには必要なメソッドがいくつかあります。それは難しくて速いルールではなく、例外もあり、データソースはデリゲートのように機能します。 – bbum
代理人は、別のオブジェクトが動作のクエリやカスタマイズに使用できるオブジェクトに過ぎません。それ以上は何もない。関係するイベントハンドラはありません。これは、他のオブジェクト指向のUIキットでよく見られるサブクラス化の大きな混乱を避けるために使用されるパターンです。
たとえば、NSWindowをサブクラス化してサイズ変更のカスタム動作を提供する代わりに、クラスのいくつかのメソッドをどこかに実装し、そのクラスのインスタンスをデリゲートとして使用するだけです。このような実装は通常、コントロールレイヤーやモデルレイヤーの情報に依存するため、NSWindowのサブクラスではなくコントロールレイヤークラスをデリゲートとして使用し、コントロールレイヤーの機能を持つビューレイヤーオブジェクトを汚染しないようにしてください。
表紙の下に、代議員は死んでいます。サイズを変更すると、NSWindowはデリゲートに単に「windowWillResize:toSize:
メソッドに応答しますか?」というメッセージを表示し、適切な時刻に呼び出します;それについてはまったくまったくobjc_msgSend()を超えてはいけません
- 1. 基本的には、デリゲートとラムダ式
- 2. 静的メソッドがいっぱいのクラスのデザインに関する考慮事項
- 3. は、私は、この基本的なHTMLを持っている特定のクラス
- 4. フラグメントと基本クラスの拡張の違いは何ですか?
- 5. ストレージがいっぱいになるのはなぜですか?
- 6. は基本的に私はこのモデルを持っている
- 7. データベースサーバーのディスクメモリがいっぱいです
- 8. 基本クラスのweak_ptrですが、shared_ptrは派生クラスですか?
- 9. 基本クラスのインターフェースの使い方は?
- 10. 基本的なPythonクラス
- 11. 基本クラスにアクセスできない派生クラスのXmlInclude?
- 12. setとdidSetの基本的な違いは何ですか?
- 13. aligned_storageの基本的な使い方は何ですか?
- 14. ToString()とConvert.ToString()の基本的な違いは何ですか?
- 15. jobconfとjobの基本的な違いは何ですか?
- 16. アクセスできない基本クラス
- 17. アプリキャッシュがいっぱいの場合はどうですか?
- 18. Cで基本クラスのメソッド
- 19. 基本クラスでより一般的なメソッドがある場合、基本クラスのメソッドをオーバーライドする方法は?
- 20. Wicket:nullでいっぱいのフォームモデルオブジェクト
- 21. ObjectiveCでカスタムクラスのデリゲートを実装するときの参照カウント
- 22. は、基本クラス
- 23. 私の基本的な電卓には何が間違っていますか?
- 24. この基本的な方法Javaで何が間違っていますか?
- 25. キャンバスはいついっぱいですか?
- 26. 基本的なphpクラスの問題
- 27. 同じ "auto"宣言で基本クラスが自動的に推論されないのはなぜですか?
- 28. HDFSディスクがいっぱいです
- 29. JMSキューがいっぱいです
- 30. 接続プールがいっぱいです
イベント'NSEvent'と' UIEvent'は、ユーザインタラクションイベントに特に使用されます - これはデリゲートによって処理される場合とされない場合があります – BoltClock