miércoles, 16 de noviembre de 2011

Capítulo I: Objective-C. Lección 4: Categorías


Las categorías son una característica muy util de Objective-C, muy útiles cuando quieres agregar funcionalidad a una clase, pero no quieres reescribirla o no tienes el código fuente como cuando se encuentra en una biblioteca.
Supongamos que tenemos una clase Perro con la siguiente declaración y definición:
//  Perro.h @interface Perro : NSObject { } -(void) ladra; -(void) corre; @end
//  Perro.m #import "Perro.h" @implementation Perro -(void) ladra {         //Guau guau } -(void) corre {         //trut trut turut } @end
Se puede agregar métodos a una clase existente, aún si no tuvieramos su código fuente con una categoría:
//  PerroTrucos.h @interface Perro (Trucos) { } -(void) traeLaVarita; @end
//  Perro.m #import "PerroTrucos.h" @implementation Perro (Trucos) -(void) traeLaVarita {  //va por la varita } @end
  • Para crear una categoría, se debe declarar con @interface NombreDeClaseExistente (NombreDeCategoriaNueva)
  • Una vez declarada la categoría se define con @implementation NombreDeClaseExistente (NombreDeCategoriaNueva)
  • Solo se pueden agregar Métodos, no se aceptan variables de instancia.
  • Solo puede haber una categoría con el mismo nombre, pero se pueden agregar muchas categorías a una misma clase.

No hay comentarios:

Publicar un comentario