【发布时间】:2011-10-13 08:34:44
【问题描述】:
我有一个在 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 变通方法的想法都将不胜感激。 Google 提供 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 的某种错误造成的。
【问题讨论】:
-
哪一行代码触发了这个错误?你在那一行右击了哪个
BOOL? -
@BoltClock - “你右键点击那一行了吗” - 我当然做到了:)
-
包含 objc.h 后是否仍然出现错误?你的问题在这一点上有点模棱两可。
-
@JeremyP - 好吧,我咬。如果我已经解决了问题,为什么还要问这个问题?原谅我的粗心——Apple 今晚也把我的 iPod 弄坏了。
-
@noloader:这个问题可以理解为“我通过包含
objc.h让它工作了,但有没有更好的解决方案”
标签: objective-c xcode compiler-errors