Как узнать, есть ли у класса/интерфейса делегат? --iOS

я новичок. Все говорят о делегатах. Да, это мощно, но я всегда задаю себе вопрос: «Откуда мы знаем, что у любого класса в ios SDK есть делегат?» что дает больше функциональности. Например, мы несколько раз использовали UITextField/UIAlertview, и мне потребовалось некоторое время, чтобы узнать, что у него есть делегат и он дает больше функциональности. Я знал это, что, если я не знаю, что у него есть делегат, и ограничу себя использованием функций Alertview, не зная его методов делегата. Кто-нибудь может пожалуйста через некоторый свет на нем? как я узнаю, что у любого xxxclass есть делегат? Заранее спасибо!


person user1275979    schedule 17.03.2012    source источник
comment
Научитесь любить ссылки на классы. Они доступны на сайте developer.apple.com.   -  person Perception    schedule 17.03.2012


Ответы (5)


Если вы не уверены, вы можете посмотреть в справочном файле класса. Если класс имеет свойство делегата, вы можете быть уверены, что можете быть делегатом класса. Например.

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference/UITextField.html

Надеюсь это поможет.

person Jamie    schedule 17.03.2012

Документация Apple, как правило, очень хорошо объясняет такие вещи.

Если вы удерживаете клавишу option (alt) и щелкаете имя класса в своем коде, XCode выводит мини-виджет документации, и вы можете щелкнуть ссылку «Справочник», чтобы перейти на страницу полной документации для этого класса. В разделе «Обзор» рассказывается о том, какие делегаты, уведомления и т. д. доступны.

person grahamparks    schedule 17.03.2012

Всякий раз, когда вы используете класс API, смотрите файл заголовка. В нем есть вся необходимая информация об API. Предположим, если вы хотите узнать больше о UITextfield, посмотрите UITextfield.h.

person Vignesh    schedule 17.03.2012

Удерживая нажатой клавишу Alt, щелкните имя класса в вашем коде, и вы увидите некоторую документацию.

введите здесь описание изображения

Затем вы можете щелкнуть ссылку на ссылку на класс или на значок книги, чтобы получить ссылку на класс.

Поэтому всякий раз, когда у вас возникают сомнения по поводу класса, первым делом вы должны заглянуть в документацию.

person sch    schedule 17.03.2012

Объявите переменную и посмотрите, имеет ли она свойство delegate или метод setDelegate:. Пример:

UITextField *testTextField = [[UITextField alloc]init];
testTextField.delegate = self;

Если у него нет делегата, он выдаст вам ошибку.

Надеюсь, поможет

person Novarg    schedule 17.03.2012