Qual é o valor padrão de uma BOOL
variável em Objective-C?
94
Qual é o valor padrão de uma BOOL
variável em Objective-C?
Não há valor padrão se você escrever
-(void)somemethod {
BOOL x; // <--- no default value
Ele é inicializado como lixo.
No entanto, para um BOOL
ivar , ele será inicializado NO
como, já que toda a instância é preenchida com 0 na inicialização.
(Observação: quando ARC está habilitado, os ponteiros de objeto local sempre terão um valor padrão nil
, mas as variáveis locais de tipos não-objeto como BOOL ainda são inicializadas como lixo. Consulte Variáveis locais definidas como nulo? (Objective-C) .)
NO
conforme mencionado acima. Acho que você quer dizer var.Fiz meus próprios experimentos usando o Xcode 5.1, OS X Mavericks 10.9.4. Para quem não conhece, ALog é um NSLog modificado. De qualquer forma, o primeiro experimento foi usar
isLandscape
como uma variável pública, com@synthesize
, para ser acessada pelo controlador de visualização pai (exibido abaixo). Segundo experimento não usei@synthesize
e eu, obviamente, costumavaself.isLandscape
obter o mesmo resultado no console. A saída do console está abaixo do meu código. O terceiro experimento usou 'isLandscape' como uma variável local dentro de um método.Esses resultados são dos dois primeiros experimentos ...
No TERCEIRO EXPERIMENTO, 'isLandscape' não era mais uma propriedade. Eu a defini como uma variável local com resultados interessantes:
Esses resultados são do terceiro experimento ...
Estou supondo que as propriedades são inicializadas por mim ou pelo Xcode automaticamente, mas as variáveis locais não recebem nenhum valor. Mesmo assim, observe a [Linha 164] a variável local não é SIM ou NÃO, mas não é nula? Eu acho que é o valor de lixo (aleatório) com o qual você não pode contar. Espero que isso ajude a próxima pessoa. Aprendi alguma coisa, mas estou ansioso por comentários. Obrigado e boa sorte!
fonte