Xcode 4:“错误:未知类型名称'BOOL';你的意思是'BOOL'?”

时间:2011-10-13 08:34:44

标签: objective-c xcode compiler-errors

我有一个在Xcode 3.2.x下运行良好的项目。在Xcode 4.2下,我在编译时遇到以下错误:

"error: unknown type name 'BOOL'; did you mean 'BOOL'?"

我可以右键点击有问题的BOOL,Xcode将跳转到Apple的定义。 BOOL中定义了<objc/objc.h>,因此我将其包含在我的源文件中(尽管事实上我正在使用UIKit.h和Foundation.h的预编译头文件)。仍然没有快乐 - 编译错误仍然存​​在。

任何关于Xcode 4解决方案的想法都将受到赞赏。谷歌提供0次点击。

编辑:添加违规代码以消除任何歧义。

// AppConstants.h
typedef enum { ThreadPriorityLow = NSOperationQueuePriorityLow, ThreadPriorityNormal = NSOperationQueuePriorityNormal,
    ThreadPriorityHigh = NSOperationQueuePriorityHigh, ThreadPriorityDefault = ThreadPriorityNormal } ThreadPriority;

static inline BOOL IsValidThreadPriority(ThreadPriority priority)
{
    return priority == ThreadPriorityLow || priority == ThreadPriorityNormal || priority == ThreadPriorityHigh;
}
编辑:在查看Emacs和HexFiend下的源代码以查找非法字符并找不到(源代码是8位干净)后,我倾向于认为这是由于Apple的某些错误。

2 个答案:

答案 0 :(得分:3)

一个疯狂的猜测是你的线上出现的一个特殊字符,你可能在XCode 3中使用了一些特殊字符编码,而在XCode 4中打开文件会触发此错误。

要查看此答案是否正确,我建议您在终端中使用catvim文件,并查看某些特殊字符是否位于此特定行。

如果有效,请告知我们

答案 1 :(得分:2)

Apple软件被打破了。

Apple无视我的3.2.6项目设置,决定使用LLVM 3.0套件而不是GCC 4.2。之前(根据Xcode 3.2.6),由于我广泛使用GCC警告和标志,我特意将项目设置为使用GCC。

我更改了“构建设置”后 - &gt; “编译C / C ++ / Objective”回到GCC 4.2,它有效。

Apple Radar 10278815报道,LLVM Bug 11126报道。希望Apple能在Xcode 5之前修复它。