我看到了“新类型” BOOL(YES, NO)。
BOOL
YES
NO
我读到这种类型几乎就像一个字符。
为了测试我做了:
NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool));
很高兴看到两个日志都显示“1”(有时在 C++ 中 bool 是一个 int 并且它的 sizeof 是 4)
所以我只是想知道 bool 类型是否有问题?
我可以只使用 bool (这似乎有效)而不会失去速度吗?
根据 中的定义objc.h:
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)
所以,是的,你可以假设 BOOL 是一个字符。您可以使用 (C99)bool类型,但 Apple 的所有 Objective-C 框架和大多数 Objective-C/Cocoa 代码都使用 BOOL,因此如果仅使用 BOOL 更改了 typedef,您将不会感到头疼。
bool