Apr 26

Quiero compartir con vosotros un par de trucos que nos ayudarán a mantener el código bien organizado y a no olvidarnos de lo que nos falta por implementar en nuestras clases. Varios editores de texto y entornos de desarrollo cuentan con directivas similares para el mismo propósito. En nuestro caso, hablo del #pragma mark y del TODO:, en Xcode.

Empezaré por explicar como se usa el TODO: en Xcode, seguramente ya sabéis para que se usa, insertado en forma de comentario en nuestro código, nos sirve para recordarnos cosas que aun falta por implementar y para que, al retomar nuestra aplicación o clase, al cabo de un tiempo, sepamos por donde seguir sin tener que repasar que estábamos haciendo.

Por ejemplo, considerar el siguiente código:

...
- (void)viewDidLoad {
    [super viewDidLoad];
	/* TODO: Setup view for first appearance
	 1- Update all label with proper info
	 2- Set up the TabBarItem
	 3- Change navigation bar color
	 4- Add buttons to the navigation bar
	 */
}
 
- (void)viewDidUnload {
	// TODO: Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}
...

En ambos casos, tanto si somos nosotros, como otro programador el que retoma la implementación, puede ver lo que falta por hacer. Lo bueno que tiene el Xcode es que, cuando usamos el TODO:, nos añade en el menú de funciones una entrada con la línea que contiene el TODO: y solo esta primera línea, de este modo podemos acceder a esa parte del código rápidamente seleccionandolo en dicho menú.

Sigamos ahora con el #pragma mark, funciona de manera similar, en este caso, lo que conseguimos es que nos aparezca un título o etiqueta en el menú de funciones, de esta manera podemos englobar varias funciones o métodos, bajo un mismo título, estructurando el código y haciendo mucho mas fácil el localizar y desplazarnos a una función en concreto, en lugar de tener que recorrer el código buscando la función deseada.

Aquí tenéis varios ejemplos de uso:

...
#pragma mark Default methods
- (void)viewDidUnload {
}
 
#pragma mark -
#pragma mark Help methods
 
- (void)showHelp {
}
 
- (void)closeHelp {
}
 
#pragma mark -
#pragma mark *** Button actions ***
 
- (void)aButtonWasPressed {
}
 
- (void)deleteButtonPressed {
}
 
#pragma mark Cancel button method
 
- (void)cancelButtonPressed {
}
...

y el resultado en el menú de funciones

Como veis, si usamos el guión “-“, obtenemos una línea horizontal como un separador. Si introducimos texto, este aparece en el menú de funciones.

Un par de observaciones a tener en cuenta cuando se usa el #pragma mark

  • No puede haber un espacio en blanco después del “-“ en #pragma mark –
  • Si el código no aparece como se espera (el separador no aparece), comprobar que ‘Sort list alphabetically’ NO está marcado en Code Sense en la configuración de Xcode.

Finalmente un ejemplo del uso de ambos conjuntamente:

...
#pragma mark -
#pragma mark Life cycle
...
- (void)viewDidLoad {
    [super viewDidLoad];
	/* TODO: Setup view for first appearance
	 1- Update all label with proper info
	 2- Set up the TabBarItem
	 3- Change navigation bar color
	 4- Add buttons to the navigation bar
	 */
}
 
- (void)viewDidUnload {
}
 
#pragma mark -
#pragma mark IBActions
 
- (IBAction)editList {
}
...

Como veis, son un par de trucos, que si se trabaja solo y se tiene buena memoria quizás no sean necesarios, pero que, al trabajar en equipo nos ayudan mucho a la hora de encontrar lo que estamos buscando, entender mejor el código de otros y centrarnos en lo que falta por hacer, ahorrándonos tiempo y dolores de cabeza.

VN:F [1.9.8_1114]
Rating: 4.5/5 (11 votes cast)
VN:F [1.9.8_1114]
Rating: +6 (from 6 votes)
TODO: y #pragma mark en Xcode, 4.5 out of 5 based on 11 ratings

Leave a Reply

You must be logged in to post a comment.

preload preload preload