Протокол UITextFieldDelegate для UIVewController - PullRequest
1 голос
/ 15 июля 2009

Я прошел этот урок Ваше первое приложение для iPhone , и оно отлично работало. Мой вопрос касается строки в руководстве, которая гласит:

Контроллер представления также будет делегатом текстового поля; как таковой, он должен принять протокол UITextFieldDelegate. Чтобы указать, что класс принимает протокол, в интерфейсе добавьте имя протокола в угловых скобках (<>) после имени класса, от которого наследуется ваш класс.

Если я удаляю протокол из контроллера представления, метод все еще вызывается (сообщение получено), и клавиатура отклоняется. Я заметил, что все методы для протокола UITextFieldDelegate являются необязательными. Если это так, зачем объявлять, что контроллер представления придерживается протокола? Что мне не хватает? : -)

1 Ответ

5 голосов
/ 15 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...