typestar

Protocolos en Objective-C

Un contrato que las clases adoptan entre paréntesis angulares.

#import <Foundation/Foundation.h>

// A protocol is a contract; classes adopt it in angle brackets.
@protocol Playable
- (NSString *)play;
@end

@interface Single : NSObject <Playable>
@end

@implementation Single
- (NSString *)play {
    return @"45 rpm, three minutes of joy";
}
@end

int main(void) {
    @autoreleasepool {
        id<Playable> disc = [[Single alloc] init];
        NSLog(@"%@", [disc play]);
    }
    return 0;
}

Cómo funciona

  1. @protocol Playable declara los métodos requeridos.
  2. NSObject <Playable> lo adopta en la línea de interfaz.
  3. id<Playable> tipa por capacidad en vez de por clase.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
23
Caracteres a escribir
402
Tokens
78
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 72 segundos.

Escribe este fragmento

Paso 1 de 3 en Protocolos y dinamismo; paso 19 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →