typestar

Tipado dinámico en Objective-C

id guarda lo que sea; las preguntas se hacen en ejecución.

#import <Foundation/Foundation.h>

int main(void) {
    @autoreleasepool {
        // id holds any object; the checks happen at run time.
        NSArray *mixedBin = @[ @"Low", @1977, @"Heroes" ];
        for (id item in mixedBin) {
            if ([item isKindOfClass:[NSString class]]) {
                NSLog(@"Title: %@", item);
            } else if ([item isKindOfClass:[NSNumber class]]) {
                NSLog(@"Year: %@", item);
            }
        }
        // respondsToSelector: asks before sending.
        id thing = @"quiet storm";
        NSLog(@"Can shout? %d",
              [thing respondsToSelector:@selector(uppercaseString)]);
    }
    return 0;
}

Cómo funciona

  1. id es el tipo cualquier-objeto; las colecciones mezclan libres.
  2. isKindOfClass: clasifica una caja mixta en ejecución.
  3. respondsToSelector: pregunta antes de enviar — @selector nombra uno.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
523
Tokens
115
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 115 segundos.

Escribe este fragmento

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

← Anterior Siguiente →