У меня есть проект, который отлично работал под 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.