У меня есть сомнения относительно классов, которые назначают делегата.
Иногда объект делегата должен реализовывать протокол, иногда нет.Например, если вы хотите отобразить UIAlertView
, вы создаете его, указав delegate
как себя.Затем класс, вызывающий UIAlertView
, должен реализовать протокол UIAlertViewDelegate
.
Если вы создаете другие классы, например NSUrlConnection
, с сообщением connectionWithRequest:delegate:
, вы назначаете делегата, который получитсообщения делегата, отправленные с NSUrlConnection
в ходе соединения, но объект, назначенный делегатом, не должен реализовывать протокол.
Я что-то упустил?Как я понимаю, когда я должен реализовать протокол?Всегда ли это ясно из справочника API, как для UIAlertViewDelegate
?
Я заметил, что ссылка UIAlertView
представляет только методы экземпляра и говорит вам, что вы должны реализовать протокол UIAlertViewDelegate
, в то время как NSUrlConnection
не говорит о протоколах для реализации, но у него есть делегатраздел методов.
Может NSUrlConnection
быть определен как класс UIAlertView
, без методов делегата, но с протоколом NSUrlConnectionDelegate
.
Или я упускаю суть?Мне кажется, два разных способа для похожих целей, но, возможно, я ошибаюсь.Надеюсь, я был совершенно ясен, я просто хочу полностью понять суть всего этого.