iOS-является ли это объявление внутри класса правильным?


Предположим, что я создаю подкласс UITextView с именем, например, myTextView. Я сделаю этот класс своим собственным делегатом. Итак, мне нужно реализовать методы делегатов, такие как

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

Должен ли я объявить этот метод так или иначе?

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

Мне это кажется рекурсивным, потому что я нахожусь внутри класса myTextView, определяя делегат, который ссылается сам на себя...

Каков правильный подход? спасибо.

1 4

1 ответ:

Просто для уточнения лучше реализовать методы, подобные определенным в протоколе:

 - (void)textViewDidBeginEditing:(UITextView *)textView

Если вы реализуете методы протокола с вашим пользовательским типом класса или любым другим типом класса, методы все равно будут вызваны, потому что не выполняется проверка типа. Параметр будет фактически вашим пользовательским подклассом. В любом случае, и снова для уточнения, я предлагаю иметь внутренний бросок, если вы хотите иметь дело с иварами вашего пользовательского подкласса:

- (void)textViewDidBeginEditing:(UITextView *)textView {
    MyTextView * myTextView = (MyTextView *)textView;
    ...
}