2010-08-10 15 views
11

mi chiedevo quale fosse la differenza tra i seguenti valori in Objective C:Objective C valori booleani

TRUE(uppercase) - true(lowercase) - yes 
FALSE(uppercase) - false(lowercase) - no 

sono colorati diversamente nell'IDE, ci sono situazioni diverse in cui si deve utilizzare i diversi valori booleani?

Grazie

+2

Non '' affermativa e NO' devono sempre essere maiuscolo in Objective-C? – BoltClock

risposta

15

Questi valori sono colorati in modo diverso, in quanto sono utilizzati in due diverse tipologie - BOOL e bool e sono diversi costrutti del linguaggio.

BOOL è una ri-definizione di macro di signed char, il che significa che può avere più di due valori, e mentre la mappatura è NO/FALSE == 0, YES/TRUE == 1, bisogna stare attenti quando si scrive espressioni booleane e considera qualsiasi valore diverso da zero come vero. I valori che possono essere assegnati a BOOL sono definiti come macro e vengono colorati di conseguenza.

Nel frattempo, bool d'altra parte è un tipo booleano vero e può avere solo due valori - true e false. I suoi valori sono costrutti del linguaggio nativo e sono colorati in quanto tali.

Ecco alcuni altri SO discussioni di questo tema:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?
Objective-C : BOOL vs bool