UITextField
プログラムなどで UI オブジェクトを作成するときはいつでも、次のようにします。
txt.delegate = self;
コンパイラの警告が表示UITextFieldDelegate
され、.h ファイルを追加するように求められます。
有無にかかわらず違いはないことに気付きましたが、コードはどちらの方法でも正常に動作します。
しかし、コンパイラの警告は消えます。どうしてこれなの?
UITextField
プログラムなどで UI オブジェクトを作成するときはいつでも、次のようにします。
txt.delegate = self;
コンパイラの警告が表示UITextFieldDelegate
され、.h ファイルを追加するように求められます。
有無にかかわらず違いはないことに気付きましたが、コードはどちらの方法でも正常に動作します。
しかし、コンパイラの警告は消えます。どうしてこれなの?
delegate
実際にデリゲート メソッドを使用していない限り、実際にオブジェクトにプロパティを設定する必要はありません。たとえば、 がいつUITextField
編集を開始するかを知る必要がある場合です。これらのことがいつ発生するかを知る必要がない場合は、デリゲートを設定する必要はありません。
逆に言えば、(ファイルに追加することによって) クラスをデリゲート メソッドに準拠させ、<SomeClassDelegate>
必要.h
なデリゲート メソッドを実装するのを忘れると、コンパイラから警告が表示され、アプリがクラッシュしたときにクラッシュします。実行します (そして、必要なデリゲート メッセージをオブジェクトに送信します)。
UITextFieldDelegate
ファイルに追加しないことについての質問に答えるために.h
、友人がフランス語の翻訳者を探していると想像してください。あなたは外国人のような男性を見つけて紹介します。あなたの友達は「でも、彼はフランス語を話せますか?」と尋ねます。あなたは「わからない」と答えます。これは警告です。