El papel del Protocolo:
1. Definir un conjunto de interfaces públicas (Pública)
@required: métodos que deben implementarse, todos los métodos en @protocol deben implementarse por defecto.
@optional: método de implementación opcional (no se puede implementar en absoluto)
2. Transferencia de valor delegado:
Es un patrón de diseño en sí mismo y significa confiar a otros para que hagan algo.
Por ejemplo: para pasar valores entre dos clases, la clase A llama al método de la clase B, la clase B encuentra un problema en el proceso de ejecución para notificar a la clase A, esta vez necesitamos usar un delegado (Delegado).
Otro ejemplo: el valor de transferencia entre el controlador (Controlador) y el controlador (Controlador), salta de C1 a C2, y luego regresa de C2 a C1, necesita notificar a C1 para actualizar la IU o hacer otras cosas, luego lo haremos Utilice el delegado (Delegado) para pasar el valor.