Поиск…


BOOL / Boolean / BOOL / NSCFBoolean

  1. bool - тип данных, определенный в C99.
  2. Булевы значения используются в условных выражениях, таких как операторы if или while, для условного выполнения логики или повторного выполнения. При оценке условного оператора значение 0 считается «ложным», а любое другое значение считается «истинным». Поскольку NULL и nil определены как 0, условные операторы этих несуществующих значений также оцениваются как «ложные».
  3. BOOL - это тип Objective-C, определенный как подписанный символ с макросами YES и NO для представления true и false

Из определения в 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 является частным классом кластера классов NSNumber. Это мост к типу CFBooleanRef, который используется для обертывания булевых значений для списков и коллекций свойств Core Foundation. CFBoolean определяет константы kCFBooleanTrue и kCFBooleanFalse. Поскольку CFNumberRef и CFBooleanRef являются разными типами в Core Foundation, имеет смысл, что они представлены различными мостиковыми классами в NSNumber.

BOOL VS Boolean

BOOL

  • Рамки Objective-C от Apple и большинство кодов Objective-C / Cocoa
    BOOL.
  • Используйте BOOL в объективе-C, имея дело с любыми API-интерфейсами CoreFoundation

логический

  • Boolean - это старое ключевое слово Carbon, определяемое как символ без знака


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow