Objective-C: Clase Básica
Cuando vamos a generar una nueva clase en Objective-C, tenemos que tener en cuenta como poco los conceptos que se exponen a continuación. No pretende ser un esqueleto a modificar, sino para rellenar.
Ficha técnica

Objective-C: Clase Básica
Código: 201111191226
Nivel: bajo
Definición (.h)

Las clases se definen en un archivo con extensión .h en el que importamos la librería Foundation.h. La directiva #import hace lo mismo que #include pero sólo realiza la inclusión si el archivo indicado no ha sido incluido con anterioridad. La clase padre puede ser cualquier clase, pero la más básica de las existentes es NSObject.

Hay que destacar que la definición empoza en @interface y termina en @end. La presencia de las llaves hace que algunas personas crean que la definición va únicamente entre estas, cuando realmente entre las llaves se sitúan las declaraciones de las variables de instancia. Fuera de las llaves, antes de @end, situaríamos las declaraciones de los métodos o mensajes, las directivas para definir las propiedades, etc.

Si nos salimos un poco de lo básico, podemos hablar de la inclusión de clases externas en la declaración. Podemos incluir el archivo .h que declare las clases a añadir, pero es más frecuente utilizar la directiva @class seguida del nombre de la clase antes de @interface para indicar que vamos a utilizar esa clase.
#import <Foundation/Foundation.h>

@interface clase : NSObject {

}

@end
Implementación (.m)

En la implementación es fundamental incluir por una parte el archivo .h correspondiente a la clase que vamos a implementar, así como cualquier otro archivo .h que vayamos a necesitar. Las directivas #pragma son muy útiles para poder organizar el código en proyectos grandes y tiene relación con el menú desplegable que muestra los métodos del archivo abierto.

Por lo demás, sólo he puesto tres métodos (notar que no están declarados en el .h porque son redefiniciones de métodos que tienen un valor por defecto…) el de inicialización, el de descripción (para generar descripciones útiles del objeto) y el de dealloc.

La idea es que si creas una variable de instancia tendrás que crearla e inicializarla al comienzo del programa y deshacerte de ella al final del programa. Lo de la descripción es bastante útil sobre todo en los proyectos que están bien planteados desde el principio.
#import "clase.h"

@implementation clase

#pragma mark -
#pragma mark Inicialización

- (
id) init
{
    
if ((self = [super init]))
    {
        
// Inicializar la instancia...
    }
    
    
return self;
}

#pragma mark -
#pragma mark Métodos sobrescritos

- (NSString *) description
{
    NSString * descripcion;
    
    
// Generar la descripción del objeto
    
    
return descripcion;
}

#pragma mark -
#pragma mark Gestión de memoria

- (
void) dealloc
{
    
// Hacer "release" a los objetos...
    
    [
super dealloc];
}

@end