4

たとえばmyTextViewという名前のUITextViewのサブクラスを作成しているとします。そのクラスを独自のデリゲートにします。だから、私は次のようなデリゲートメソッドを実装する必要があります

- (void)textViewDidBeginEditing:(UITextView *)textView {

このメソッドをそのように宣言する必要がありますか、それともこのように宣言する必要がありますか?

- (void)textViewDidBeginEditing:(myTextView *)textView {

私はmyTextViewクラス内にいて、自分自身を参照しているデリゲートを定義しているので、再帰的なように見えます...

正しいアプローチは何ですか?ありがとう。

4

1 に答える 1

4

明確にするために、プロトコルで定義されているようなメソッドを実装することをお勧めします。

 - (void)textViewDidBeginEditing:(UITextView *)textView

カスタムクラスタイプまたは任意のクラスタイプを使用してプロトコルメソッドを実装する場合、タイプチェックが実行されないため、メソッドは引き続き呼び出されます。パラメータは実際にはカスタムサブクラスになります。とにかく、また明確にするために、カスタムサブクラスのivarを処理する場合は、内部キャストを使用することをお勧めします。

- (void)textViewDidBeginEditing:(UITextView *)textView {
    MyTextView * myTextView = (MyTextView *)textView;
    ...
}
于 2012-10-07T21:01:47.687 に答える