Objective-C Language BOOL / Boolean / bool / NSCFBoolean


Exemple

  1. bool est un type de données défini dans C99.
  2. Les valeurs booléennes sont utilisées dans les conditions, par exemple les instructions if ou while, pour effectuer une logique ou une répétition de manière conditionnelle. Lors de l'évaluation d'une instruction conditionnelle, la valeur 0 est considérée comme «fausse», tandis que toute autre valeur est considérée comme «vraie». Étant donné que NULL et nil sont définis comme 0, les instructions conditionnelles sur ces valeurs inexistantes sont également évaluées comme «false».
  3. BOOL est un type Objective-C défini en tant que char signé avec les macros YES et NO pour représenter true et false

De la définition dans objc.h:

#if (TARGET_OS_IPHONE && __LP64__)  ||  TARGET_OS_WATCH
typedef bool BOOL;
#else
typedef signed char BOOL; 
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" 
// even if -funsigned-char is used.
#endif

#define YES ((BOOL)1)
#define NO  ((BOOL)0)
  1. NSCFBoolean est une classe privée du cluster de classes NSNumber. C'est un pont vers le type CFBooleanRef, qui est utilisé pour encapsuler les valeurs booléennes des listes de propriétés et des collections Core Foundation. CFBoolean définit les constantes kCFBooleanTrue et kCFBooleanFalse. Étant donné que CFNumberRef et CFBooleanRef sont des types différents dans Core Foundation, il est logique qu'ils soient représentés par différentes classes de pontage dans NSNumber.