¿Hay algún problema al usar self.property = nil en dealloc?

Sé que la propiedad declarada genera un método de acceso que de alguna manera es solo sintaxis de azúcar.

Encontré que mucha gente usaself.property = nil en sudealloc método.

1) En @ de AppGestión de la memori documento, p23 Dice:

Los únicos lugares donde no debe usar métodos de acceso para establecer una variable de instancia son los métodos init y dealloc.

¿por qué no debería?

2) En Apple's Objective-C 2.0, p74

Las propiedades declaradas ocupan fundamentalmente el lugar de las declaraciones de métodos de acceso; cuando sintetiza una propiedad, el compilador solo crea métodos de acceso ausentes. No hay interacción directa con ladeallocétodo @: las propiedades no se liberan automáticamente. Sin embargo, las propiedades declaradas proporcionan una forma útil de verificar la implementación de sudeallocétodo @: puede buscar todas las declaraciones de propiedad en su archivo de encabezado y asegurarse de que las propiedades del objeto no estén marcadas conassign Se liberan y las marcadas conassign No se publican.

Nota: normalmente en unadealloc método que deberíasrelease variables de instancia de objeto directamente (en lugar de invocar un conjunto de acceso y pasarnil como parámetro), como se ilustra en este ejemplo:

- (void)dealloc { [property release]; [super dealloc]; }

Si está utilizando el tiempo de ejecución moderno y sintetizando la variable de instancia, sin embargo, no puede acceder a la variable de instancia directamente, por lo que debe invocar el método de acceso:

- (void)dealloc { [self setProperty:nil]; [super dealloc]; }

¿Qué significa la nota?

Encontré[property release]; y[self setProperty:nil]; ambos trabajan

Respuestas a la pregunta(1)

Su respuesta a la pregunta