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
@interface NSString (Shelf)abre la categoría.- El bloque de implementación se empareja con el mismo nombre.
- Toda instancia de NSString ahora responde
shelfLabel.
Palabras clave y builtins usados aquí
NSStringintreturnselfvoid
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.
Paso 2 de 3 en Protocolos y dinamismo; paso 20 de 27 en Fundamentos del lenguaje.