みんな私にデリゲートとデリゲートメソッドの違いとその違いとその使い方を教えてください???
4 に答える
説明するのは難しいですが、デリゲートは別のオブジェクトに代わってメソッドを実行します。テーブル ビューは、リスト内の項目を選択したときに何をすべきかを知りません。代わりに、デリゲート オブジェクトに質問する必要があります。具体的には、didSelectRowAtIndexPath です。tableview が認識できる唯一の情報は、ユーザーがタップしたセクションと行です。したがって、テーブル ビューは、基本的に「ねえ、ユーザーがセクション 0 の行 4 をタップしました。何かをしてください」と言って、デリゲート オブジェクトにこの情報を提供します。
デリゲート オブジェクトは didSelectRowAtIndexPath メソッドを見つけ、内部のコードを実行します。
多くの異なるオブジェクトに対して多数の Delegate メソッドがあります。たとえば、テキスト フィールド オブジェクトは、単独では何もできません。代わりに、デリゲートを使用してアクションを実行します。スクリーン キーボードの Enter キーを押すと、テキスト フィールドはデリゲート オブジェクトに特定のメソッド textFieldShouldReturn を実行するよう要求します。テキスト フィールドに設定したデリゲートに textFieldShouldReturn メソッドがない場合、入力ボタンを押したときにテキスト フィールドは何をすべきかわかりません。
これは理にかなっていますか?
デリゲートはオブジェクトです。デリゲート メソッドは、デリゲート オブジェクトが実装することが期待されるメソッドです。一部のデリゲート メソッドは必須ですが、一部は必須ではありません。IOS では、ほとんどのデリゲートが Objective-C プロトコルに準拠することが期待されています。プロトコル宣言は、オプションのメソッドと必須のメソッドを示します。
デリゲートは単に別のオブジェクトへの参照であり、デリゲートメソッドはデリゲートのメソッドです。
デリゲートメソッドは、通常、呼び出されるパラメーターの1つとして送信者を受け取るコールバックメカニズムを実装します。
すべての iOS アプリは委任を使用します。基本的なものでも。彼らがあなたに与えるコードですでに利用可能です。他の言語では、継承のようなものを使用します。
現実の世界と同じように、デリゲートは誰か/何か、またはこの場合はオブジェクトを表します。
たとえば、UI オブジェクトには、タスクを実行するためのメソッドが既に用意されています。ただし、それらはviewController(オブジェクト/カスタムクラス)に接続でき、責任をオブジェクトに委任できます。
覚えておくべきいくつかのこと:
- これはすべてデリゲート プロトコルを使用して行われます。
- それは自発的なものです。したがって、オブジェクトはデリゲートになることを選択します。
- Delegate プロトコルを見て、メソッドを実装します。オプションのものもあれば、必須のものもあります。
- 委任オブジェクトがオブジェクトに接続されていることを確認してください。