¿Cuál es la ventaja de usar protocolos en Objective-C?

En primer lugar, los protocolos y las clases son cosas diferentes con diferentes nombres para diferentes propósitos, a diferencia de C ++.

Utiliza el protocolo para crear, bueno, un protocolo: la “forma” de una clase. Si una clase sigue un protocolo determinado, puede estar seguro de que la clase implementa lo que requiere el protocolo. La idea es muy similar a la interfaz del lenguaje Java.

Por ejemplo, tienes un protocolo de perro. Usted sabe que un perro necesita algo de comida, corteza y popó, “sentarse”, “ladrar” y otros comandos y algunas devoluciones de llamada cuando necesita su atención. Todos los perros comparten estas propiedades.

De hecho, ¡puedes entrenar a un hámster para que sea como un perro, haciendo que siga el protocolo de tu perro! Aquí está la mayor diferencia de la subclase.

Puede recopilar todo esto en un protocolo e implementar diferentes clases de perros ahora: chiwawa, bullterier, pastor alemán e incluso galgo italiano, todos los cuales son esencialmente diferentes pero comparten las mismas golosinas definidas por el protocolo del perro.

¿Por qué no solo una subclase, podrías preguntar? Como el protocolo no es una clase, es simplemente un molde. Sí, claro, los perros deben ser subclasificados de la clase Mamíferos, pero todos los mamíferos son diferentes y agrupar estas diferencias definiendo el protocolo es la forma correcta.

Por supuesto, también puede implementar varios protocolos en una clase.

Por ejemplo, un galgo italiano es un perro y un animal vivo al mismo tiempo. Estos son protocolos muy diferentes, pero el galgo italiano se ajusta a ambos: es un perro y un animal vivo al mismo tiempo. Entonces, cuando implementa una clase de galgos, puede hacer que siga los protocolos Dog y LivelyAnimal.

Al hacer esto, hace que su clase de galgos sea predecible: definitivamente sabe que es un perro y un animal animado al mismo tiempo y que comparte todas las propiedades del perro y el animal animado. Pero, siguiendo un protocolo, su perro no es en realidad un animal en sentido estricto, porque no lo subclasificamos de la clase Mammalia. 🙂

El protocolo es un factor importante de Objective-C.

cuando queremos navegar un controlador de una vista a otro controlador de vista con paso de datos … usaremos un segue y un guión gráfico y un controlador de navegación.

Con el protocolo utilizado, pasaremos los datos a un controlador de vista otro.

con el método de instancia de protocolo utilizado, utilizaremos este método en cualquier controlador. no necesitamos crear un método separado para todos los controles de vista

mi sugerencia es que usó el protocolo y todo el método delegado.

con el uso del método de protocolo / delegado, el trabajo se consumirá 🙂

¿Por qué necesitamos el protocolo en el objetivo C?