2012-03-14 127 views
2

当我从4.2升级我的xcode时,项目无法在.mm文件中作为@try的错误正确构建。Xcode 4.3编译错误@try

错误消息说它应该没有@之前尝试。

Unexpected '@' in program 

Objective-c语言是否发生了变化或其他原因?

这是一个导入某些头文件的objective-c文件。

exception_xxx.h

#define MY_EXCEPTION_TRY @try { 
#define MY_EXCEPTION_HANDLE } @catch (NSException *localException) {} 

,并在一些Objective-C的文件(.mm文件),我导入exception_xxx.h

这个代码在4.2完美的,但在Xcode 4.3失败。

+0

异常与'@处理try'块应该是相同的。这是一个Objective-C文件或C++吗? (你提到的文件扩展名是.mm) – FluffulousChimp 2012-03-14 02:45:42

+0

这是一个头文件,正好。 exception_xxx.h 的#define MY_EXCEPTION @try 和头文件是由一些Objective-C的文件(这是.mm文件) – holsety 2012-03-14 03:02:38

+0

您确定该文件实际上是被编译为对象 - 进口? – 2012-03-14 03:45:56

回答

2

启用C++异常为我解决了这个问题。 但wtf苹果?这些都是objc例外,为什么我还需要启用C++异常呢?

0

还检查编译标志看是否有类似

-fno-exceptions 

此标志将覆盖“启用C++异常”配置在Xcode项目设置