2010-06-10 13 views
26

Sé que BOOL es en realidad un tipo de char firmado. Pero, ¿qué hay de Boolean? estoy confundido de bool, Boole y BOOL .... Q Q¿Hay alguna diferencia entre BOOL y Boolean en Objective-C?

+0

Objective-C no tiene un tipo llamado "Boolean" o "bool", ¿puedes aclarar tu pregunta? –

+0

No sé, Boolean aparece en la biblioteca CF ... – Frost

+0

Claro que sí. Es C, así que tiene esos también. Y cosas de C++. – uchuugaka

Respuesta

42

Boolean es una vieja palabra clave carbono (tipo histórico Mac), que se define como un unsigned char. BOOL es un tipo Objective-C definido como signed char. bool es una versión definida del tipo C estándar _Bool. Se define como int. Use BOOL.

+6

'Boolean' se utiliza en CoreFoundation (que Carbon se basa principalmente en ahora), por lo tanto, aunque debería usar BOOL en Object-C, al tratar con cualquier API de CoreFoundation, Boolean todavía está en uso. – bobDevil

+1

Oh, ya veo, entonces debería usar BOOL para uso común y Boolean en CF. ¡Gracias! – Frost

+0

Vaya, tienes razón. CoreFoundation define una versión de 'Boolean', pero eso está separado de la definición de Carbon. Ver MacOSTypes.h contra OSTypes.h. Y en sistemas de 64 bits que no usan C99, 'Boolean' de CoreFoundation es un 'char sin signo '. –

Cuestiones relacionadas