2013-08-04 2 views
0

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

@interface myViewController : UIViewController **<UITableViewDataSource**, **UITabBarControllerDelegate>** 

т.е. вручную указать соблюдение протокола?

Thanks,

ответ

3

При настройке делегата и источника данных из конструктора интерфейса, по-видимому, нет причин указывать, какие протоколы соответствуют этому классу.

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

Только при настройке делегата/источника данных из кода существует некоторая статическая проверка типа, чтобы убедиться, что делегат/источник данных соответствует необходимым протоколам.

Нижняя линия: напишите. Вы получаете автозаполнение xcode, возможно, некоторое предупреждение в некоторых случаях, документацию по коду и некоторую реализацию OCD.

1

Да. Указание в коде, который класс реализует протоколами, - это то, что сообщает XIB, что вы можете делать подключения, и сообщает компилятору, что все необходимые методы из протоколов должны быть реализованы (и предупреждение должно быть поднято, если это не так) ,

Технически вы можете обойтись без них, но вы не должны.

-1

Вы попробовали? Без работы?

Вы можете подключать их только в интерфейсе, когда вы добавляете UITableViewDataSource и UITabBarControllerDelegate в свой файл заголовка.

Не забудьте ввести необходимые методы (datasource & delegate) в вас. Вы получите предупреждение, когда вы забудете их кстати.

Смежные вопросы