Назначение ViewController делегату, это хорошо?

#iphone #objective-c #ios #xcode

#iPhone #objective-c #iOS #xcode

Вопрос:

Я новичок в программировании на iOS, недавно я наткнулся на учебник, в котором автор назначил ViewController делегату текстового поля. Хорошо ли это делать? Поскольку Xcode выдает мне предупреждение.

 discussIDTextField.delegate = self;
  

self является ли DiscussViewController и приведенный выше код внутри DiscussViewController.m

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

Предупреждение: присвоение идентификатора из несовместимого типа ‘DiscussViewController’.

Ответ №1:

Контроллер представления (self) должен реализовать UITextFieldDelegate протокол. Итак, ваше @interface определение должно выглядеть примерно так:

 @interface DiscussViewController : UIViewController <UITextViewDelegate>
  

И затем, конечно, в реализации реализуются некоторые методы делегированного протокола.

Ответ №2:

В вашем файле .h добавьте UITextFieldDelegate между < >, чтобы ваш контроллер представления стал делегатом текстового поля, а затем в файле .m реализуйте методы делегирования, которые вам нужны.

 @interface DiscussViewController : UIViewController <UITextFieldDelegate>