Ao criar propriedades, sempre nomeie-as de forma que false / FALSE / NO seja o valor padrão . Isso é importante no caso de uma propriedade não ser definida explicitamente – você deseja que seu valor padrão ainda faça sentido. Por exemplo:
@property (nonatomic, getter=isNotLoaded) BOOL notLoaded;
Portanto, se você tiver algum tipo de classe de dados com esta propriedade e não configurá-la, o padrão será 0 (falso / FALSO / NÃO). Logicamente, isso significa não -notLoaded … ou carregado! Ninguém gosta de um duplo negativo, especialmente quando indica erroneamente que dados descarregados foram carregados.
Uma abordagem melhor é nomear a propriedade de forma que o estado zerado ainda seja preciso, assim:
@property (nonatomic, getter=isLoaded) BOOL loaded;
Agora você tem um estado padrão que significa não carregado, o que faz muito mais sentido no estado zerado. Eu sei o que você está pensando … duh, isso é tão óbvio. E você está certo, mas eu vi desenvolvedores muito experientes estragar tudo de vez em quando, inclusive eu.
Aqui está mais um exemplo que talvez não seja tão óbvio intuitivamente:
@property (nonatomic, getter=isVisible) BOOL visible;
Uma propriedade chamada visible parece razoável até que você pense em seu estado padrão de false / FALSE / NO, que significa não -visível, também conhecido como oculto. A menos que você realmente queira oculto como o estado padrão, é melhor chamar a propriedade oculta (como a Apple fez no UIView):
@property (nonatomic, getter=isHidden) BOOL hidden;
Agora, o estado padrão (zerado) significa não- oculto ou visível, que é provavelmente o estado de visibilidade padrão que você deseja para objetos com esta propriedade.
Mais uma coisa, nem sempre é seguro presumir que variáveis não definidas serão zeradas. Variáveis de instância (incluindo propriedades), variáveis globais e variáveis estáticas são inicializadas com zero automaticamente, mas as variáveis locais não . Portanto, tome cuidado com o que você supõe.