typestar

Categorías en Objective-C

Agrega métodos a una clase que no es tuya — incluso NSString.

#import <Foundation/Foundation.h>

// A category adds methods to a class you do not own -- even NSString.
@interface NSString (Shelf)
- (NSString *)shelfLabel;
@end

@implementation NSString (Shelf)
- (NSString *)shelfLabel {
    return [[self uppercaseString] stringByAppendingString:@" //"];
}
@end

int main(void) {
    @autoreleasepool {
        NSLog(@"%@", [@"ambient" shelfLabel]);
        NSLog(@"%@", [@"krautrock" shelfLabel]);
    }
    return 0;
}

Cómo funciona

  1. @interface NSString (Shelf) abre la categoría.
  2. El bloque de implementación se empareja con el mismo nombre.
  3. Toda instancia de NSString ahora responde shelfLabel.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
427
Tokens
82
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →