Sé que las discusiones sobre los estilos de codificación tienden a terminar en desastres e interminables guerras de llama, pero eso no es lo que quiero llegar. Durante la última década, principalmente vi dos estilos de codificación diferentes para los métodos dealloc
en Objective-C. El primero y el más común era colocar dealloc
en la parte inferior del archivo. Este es también el estilo que usa Apple en las plantillas predeterminadas de Xcode. La lógica detrás de esto parece ser que dealloc
se invoca cuando se acerca el final del objeto, por lo que el final del archivo parece ser una buena metáfora. Por otro lado, un par de personas tiende a poner dealloc
directamente debajo de las directivas @synthesize
. Esto tiene dos desventajas importantes en mi opinión:¿Cuál es su estilo de codificación preferido para dealloc en Objective-C?
- La parte superior del archivo se llena de aburrido código.
- Es más difícil encontrar las partes esenciales en su clase, tiene que desplazarse hacia abajo.
La gran ventaja en mi opinión es que usted tiene una conexión visual directa entre las propiedades y el mensaje correspondiente release
.
La otra cosa es niling las variables ya publicadas. Si bien no creo que esto sea necesario, especialmente en el contexto de objetos donde la variable completa se desciende después de que termina el dealloc
, tiendo a nulificar las variables. Estoy acostumbrado a hacer esto para las variables en el alcance de la función, por lo que soy coherente con mi estilo de codificación.
Esta es la forma en la mayoría de mis clases se parecen:
@implementation Bar
@synthesize foo;
- (void)dealloc
{
[foo release], foo = nil;
[super dealloc];
}
// Initializers and other methods…
ya he mencionado un par de pros y contras. ¿Qué opinas sobre este tema? ¿Cuál es el estilo de codificación que usa en dealloc
y por qué? ¿Hay otros pros y contras que olvidé mencionar?
No quiero comenzar una guerra de llamas aquí. Solo quiero saber qué estilo usas y si tienes razones específicas para esto o si esto no te importa al final.
Eventho no desea que las personas comiencen discusiones y llamas, sucederá a preguntas como esta. – Younes