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.