Crie propriedades com um estado normal normal

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.