iOS: uso de self e underscore (_) com variável [duplicate]

Duplicata Possível:
Como um sublinhado na frente de uma variável em uma classe de cacau objetivo-c funciona?

Eu tenho sido muito confuso com o uso de auto ou sublinhado com o nome da variável depois de sintetizá-lo como abaixo:

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

In .m file:
@synthesize users = _users;

Com base em meus entendimentos quando uso self.users, o sistema operacional libera a memória alocada anteriormente no método set, portanto, não precisamos tomar cuidado explicitamente.

_users é uma variável de instância para usuários e deve ser usada normalmente durante o acesso à variável users. Se eu usar _users para alterar seu valor, ele não acionará o delegado do KVO que não notificará uma classe observando a mudança de valor dos usuários.

Além disso, self.users permite diferenciar a variável dummy no nome do método, como abaixo,

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

Alguém poderia me dizer se há algo que eu entendi errado ou ausente ao usar _users ou self.users. Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion