-2

UITextFieldプログラムなどで UI オブジェクトを作成するときはいつでも、次のようにします。

txt.delegate = self;

コンパイラの警告が表示UITextFieldDelegateされ、.h ファイルを追加するように求められます。

有無にかかわらず違いはないことに気付きましたが、コードはどちらの方法でも正常に動作します。

しかし、コンパイラの警告は消えます。どうしてこれなの?

4

1 に答える 1

2

delegate実際にデリゲート メソッドを使用していない限り、実際にオブジェクトにプロパティを設定する必要はありません。たとえば、 がいつUITextField編集を開始するかを知る必要がある場合です。これらのことがいつ発生するかを知る必要がない場合は、デリゲートを設定する必要はありません。

逆に言えば、(ファイルに追加することによって) クラスをデリゲート メソッドに準拠させ、<SomeClassDelegate>必要.hなデリゲート メソッドを実装するのを忘れると、コンパイラから警告が表示され、アプリがクラッシュしたときにクラッシュします。実行します (そして、必要なデリゲート メッセージをオブジェクトに送信します)。

UITextFieldDelegateファイルに追加しないことについての質問に答えるために.h、友人がフランス語の翻訳者を探していると想像してください。あなたは外国人のような男性を見つけて紹介します。あなたの友達は「でも、彼はフランス語を話せますか?」と尋ねます。あなたは「わからない」と答えます。これは警告です。

于 2013-02-10T15:29:52.980 に答える