This post is inspired from the eye-opener article -> bignerdranch.
I always had this question, Why does Objective-C need a
.BOOL when C gives it a free bool, which effectively works the same?
Well, I couldn’t have been more wrong. BOOL and bool are entirely different beasts.
BOOL is a typedef, defined at /usr/include/objc/objc.h (Also available here)
typedef signed char BOOL;
Similar to, Boolean, which is defined at /usr/include/MacTypes.h (Also available here)
typedef unsigned char Boolean;
Also, YES and NO are macros for 1 and 0. Reference
#define YES (BOOL)1
#define NO (BOOL)0
This means that our usual comparisons might fail. Example:
12 == YES
For more such examples, look at bignerdranch.
The thing to note is that, you should be careful about the same comparisons for Boolean too.
No comments:
Post a Comment