【发布时间】:2012-09-03 11:53:36
【问题描述】:
我只是在试验作为 Xcode 4.4 的一部分引入的新的 Objective-C 文字语法。
字典、整数和数组都可以正常工作,但我在让BOOLs 工作时遇到了问题。例如:
NSDictionary *myDict = @{
@"foo": @"bar",
@"test": @YES
};
“意外的类型名称 'BOOL': 预期的表达式” 在布尔值的行上。
但是,@(YES)、@1、@true 都可以正常工作。
这篇文章:http://clang.llvm.org/docs/ObjectiveCLiterals.html 建议 @YES 应该可以工作。
我也在自己的线路上尝试过:NSNumber *myNum = @YES; 并得到同样的错误。
错误?!
【问题讨论】:
-
[troll]xcode == bug[/troll]。但是是的,这似乎是一个错误,很奇怪...... Xcode 4.4 后面的 clang 版本是什么?你确定你使用的是 clang 而不是 gcc 吗?
-
列出的编译器是“Apple LLVM 编译器 4.0”。奇怪的是它大部分有效!还尝试了该页面上还提到的“对象订阅”,但它不起作用,但也许这是因为 Apple 需要通过为 NSDictionary 等添加对 [] 运算符的支持来在其 SDK 中支持它。(尚未尝试使用 iOS 6 SDK)
标签: objective-c xcode4 objective-c-literals