New Xcode 4.4 is out and it should support literals like
@42
@"String"
@23.0L
@{ @"key" : obj }
and
@[obj1, obj2]
and it should also support @YES
and @NO
, which isn't working when targeting latest iOS 5 (and prior).
After compiling it show the error message:
Unexpected type name 'BOOL': expected expression
I know you can fix it by typing @(YES)
and @(NO)
. But I want to know the reason why it isn't working as expected.
The reason is Apple forgot the parentheses here:
#define YES (BOOL)1
This will be fixed in iOS 6 SDK:
#define YES ((BOOL)1)
In the meantime you must type @(YES)
.