Как мы узнаем, есть ли у класса / интерфейса делегат? --iOS - PullRequest
0 голосов
/ 17 марта 2012

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

Ответы [ 5 ]

1 голос
/ 17 марта 2012

Нажмите Alt на название класса в вашем коде, и вы увидите некоторую документацию.

enter image description here

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

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

1 голос
/ 17 марта 2012

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

1 голос
/ 17 марта 2012

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

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

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

1 голос
/ 17 марта 2012

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

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

0 голосов
/ 17 марта 2012

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

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

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

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

...