iOS: uso de self y guión bajo (_) con variable [duplicar]

Posible duplicado:
¿Cómo funciona un subrayado frente a una variable en una clase de c-cocodrilo-objetivo?

He estado muy confundido con el uso de self o subrayado con nombre de variable después de sintetizarlo como se muestra a continuación:

In .h file:
@property(nonatomic, strong) NSMutableArray *users;

In .m file:
@synthesize users = _users;

Según mis entendimientos cuando uso self.users, el sistema operativo se asegurará de liberar la memoria asignada previamente en el método de configuración para que no tengamos que ocuparnos explícitamente.

_users es una variable de instancia para los usuarios y se debe utilizar normalmente al acceder a la variable de usuarios. Si uso _users para cambiar su valor, entonces no se activará el delegado KVO que no notificará a una clase observando el cambio de valor de los usuarios.

Además, self.users permite diferenciar una variable ficticia en el nombre del método como se muestra a continuación,

- (void)assignUsers:(NSMutableArray*)users {
      self.users = users;
}

¿Podría alguien decirme si hay algo que haya entendido mal o que haya perdido al usar _users o self.users? Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta