я новичок. Все говорят о делегатах. Да, это мощно, но я всегда задаю себе вопрос: «Откуда мы знаем, что у любого класса в ios SDK есть делегат?» что дает больше функциональности. Например, мы несколько раз использовали UITextField/UIAlertview, и мне потребовалось некоторое время, чтобы узнать, что у него есть делегат и он дает больше функциональности. Я знал это, что, если я не знаю, что у него есть делегат, и ограничу себя использованием функций Alertview, не зная его методов делегата. Кто-нибудь может пожалуйста через некоторый свет на нем? как я узнаю, что у любого xxxclass есть делегат? Заранее спасибо!
Как узнать, есть ли у класса/интерфейса делегат? --iOS
Ответы (5)
Если вы не уверены, вы можете посмотреть в справочном файле класса. Если класс имеет свойство делегата, вы можете быть уверены, что можете быть делегатом класса. Например.
Надеюсь это поможет.
Документация Apple, как правило, очень хорошо объясняет такие вещи.
Если вы удерживаете клавишу option (alt) и щелкаете имя класса в своем коде, XCode выводит мини-виджет документации, и вы можете щелкнуть ссылку «Справочник», чтобы перейти на страницу полной документации для этого класса. В разделе «Обзор» рассказывается о том, какие делегаты, уведомления и т. д. доступны.
Всякий раз, когда вы используете класс API, смотрите файл заголовка. В нем есть вся необходимая информация об API. Предположим, если вы хотите узнать больше о UITextfield, посмотрите UITextfield.h.
Удерживая нажатой клавишу Alt, щелкните имя класса в вашем коде, и вы увидите некоторую документацию.
Затем вы можете щелкнуть ссылку на ссылку на класс или на значок книги, чтобы получить ссылку на класс.
Поэтому всякий раз, когда у вас возникают сомнения по поводу класса, первым делом вы должны заглянуть в документацию.
Объявите переменную и посмотрите, имеет ли она свойство delegate
или метод setDelegate:
. Пример:
UITextField *testTextField = [[UITextField alloc]init];
testTextField.delegate = self;
Если у него нет делегата, он выдаст вам ошибку.
Надеюсь, поможет