iOS-является ли это объявление внутри класса правильным?
Предположим, что я создаю подкласс UITextView с именем, например, myTextView. Я сделаю этот класс своим собственным делегатом. Итак, мне нужно реализовать методы делегатов, такие как
- (void)textViewDidBeginEditing:(UITextView *)textView {
Должен ли я объявить этот метод так или иначе?
- (void)textViewDidBeginEditing:(myTextView *)textView {
Мне это кажется рекурсивным, потому что я нахожусь внутри класса myTextView, определяя делегат, который ссылается сам на себя...
Каков правильный подход? спасибо.
1 ответ:
Просто для уточнения лучше реализовать методы, подобные определенным в протоколе:
- (void)textViewDidBeginEditing:(UITextView *)textView
Если вы реализуете методы протокола с вашим пользовательским типом класса или любым другим типом класса, методы все равно будут вызваны, потому что не выполняется проверка типа. Параметр будет фактически вашим пользовательским подклассом. В любом случае, и снова для уточнения, я предлагаю иметь внутренний бросок, если вы хотите иметь дело с иварами вашего пользовательского подкласса:
- (void)textViewDidBeginEditing:(UITextView *)textView { MyTextView * myTextView = (MyTextView *)textView; ... }