Uma das maiores dificuldades de quem está começando a desenvolver para iOS é entender a ligação entre as várias partes do SDK. Como o primeiro contato costuma ser com o UIKit, enteder e saber usar os delegates é essencial, pois eles são a forma usada pelo UIKit para ligar os componentes da View ao Controller.
A documentação da Apple diz o seguinte sobre delegates:
Delegação é um padrão simples e poderoso em que um objeto age no lugar de, ou em coordenação com, outro objeto.
Ou seja, é uma forma de comunicação entre dois, e somente dois, objetos. Entender que somente dois objetos estão envolvidos é o que diferencia o uso de delegates das duas outras formas de comunicação no iOS: Notification e Key Value Observing (KVO).
Neste artigo falarei sobre como usar os delegates que vem no iOS e a partir desse conhecimento entender como e quando utilizar esse padrão nos seus próprios objetos.