Conceptos básicos de protocolos de aplicaciones ios

Video: calculaDora iOS - Swift 3 (Conceptos Básicos)

Por definición, un protocolo aclara conjuntos de métodos que pueden ser implementadas por cualquier clase para una aplicación IOS. Los protocolos se utilizan para definir las interfaces implementadas por clases. Los protocolos se utilizan a menudo para especificar la interfaz de objetos de delegado. Con la función de protocolo, puede evitar tener que forzar la subclasificación con el fin de crear clases polimórficas.

Video: Las 5 apps imprescindibles para iOS iPhone del 2016

Objective-C (a diferencia de C ++) no permite que una clase tenga múltiples superclases. Por lo tanto, los protocolos son una característica esencial en Objective-C, ya que no permite la herencia múltiple.

Cuando una clase implementa los métodos en un protocolo, se dice que la clase a la ajustarse con el protocolo.

Video: Top 10 apps imprescindibles iPhone

La definición de un protocolo es similar a la definición de una interfaz para una clase. Sin embargo, un protocolo no tiene un padre o variables de la clase de instancia. Aquí está un ejemplo de una definición de protocolo (para imprimir) del programa de la calculadora de sufijo:

@protocol Printable- (void) // printMe- que puede dejar de lado @Required, ya que es el valor por defecto @ opcional - (NSString *) printMeToString - d

Con la llegada (y de hecho con gran fanfarria) de Objective-C 2.0, los métodos de protocolo puede ser cualquiera requerida (el valor predeterminado) u opcional. Observe que las directivas del compilador están aquí también.

Aquí está la declaración de la StackOfInteger indicando que pondrá en práctica el protocolo:

@interface StackOfInteger: NSObject …-re

Aquí está la implementación del protocolo en la clase StackOfInteger:

@implementation StackOfInteger- ... Otros métodos StackOfInteger ... /////////// Métodos para implementar el protocolo para imprimir //////////// - (void) PrintMe {int k, stackCount = [ Cuenta los elementos] -NSLog (@"Apilar-gt; Último gt;% dlt; norte", La auto-gt; último) -para (k = 0- k

Observe que el método no está implementado printMeToString porque es opcional.

Un programa puede comprobar si un objeto se ajusta a un protocolo. El código siguiente incluye ejemplos de esta prueba (tomada desde el programa principal de la muestra):

 printf ("Pruebas de conformidad a protocolsn") -Si ([MyStack conformsToProtocol: @protocol (imprimible)]) {printf ("Usando methodsn protocolo") - [MyStack PrintMe] -} else {NSLog (@"Objeto no se ajusta al protocolo% @ n", @protocol (imprimible)) -} Identificación someObject = [[alloc PostfixCalculator] initWithExpression: @"44 55 *"] -si ([someObject conformsToProtocol: @protocol (imprimir)]) {NSLog (@"Objeto no se ajusta al protocolo") -}

Debido a que el objeto MyStack cumpla con el protocolo, se llaman sus métodos PrintMe y printMeToString. Desde someObject (que es tipo de ID para que el ejemplo más significativo) no se ajusta al protocolo para imprimir, la prueba para la conformidad falla.

También puede comprobar la existencia de un método opcional usando el método respondsToSelector.

Se puede hacer una clase adopta un protocolo simplemente mediante la aplicación de los métodos definidos por ese protocolo. Es decir, que no tiene que declarar el protocolo en su interfaz. Sin embargo, a pesar de que la clase implementa los métodos de protocolos, se será no ser conforme al protocolo y fallará la prueba de conformidad precedente.

Artículos Relacionados