Literal @YES not working in iOS 5 / Xcode 4.4
ios, literals, llvm, llvm-4.0, objective-c
Solution
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)`.
Problem
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.