2010-06-23 54 views
2

我刚刚将核心图升级到已经运行成功图的应用程序中的最新版本。我遵循相当简单的说明,但是在UIView.h中出现了20个语法错误。 It seems that I'm not alone,但没有人发布过该问题的解决方案。'^'令牌之前的语法错误

一个例子:

此代码UIView.h

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0); 

给人的编译错误 “语法错误之前 '^' 令牌”:

/var/folders/UO/UOZJs7XuF5iROp2HMSTlz++++TI/-Caches-/com.apple.Xcode.501/CompositeSDKs/iphonesimulator-iPhoneSimulator4.0-drysryiarqddqccmfooifrjfbivi/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:250:0 Syntax error before '^' token in /var/folders/UO/UOZJs7XuF5iROp2HMSTlz++++TI/-Caches-/com.apple.Xcode.501/CompositeSDKs/iphonesimulator-iPhoneSimulator4.0-drysryiarqddqccmfooifrjfbivi/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 

它认为解决的办法是与构建设置相关。什么会导致这个错误?我不熟悉Objective-C中的(^)语法。

+0

由于Core Plot是一个正在进行中的工作,所以最好在核心图问题跟踪器(http://code.google.com/p/core-plot/issues/list)或邮件列表中解决([email protected])。事实上,这个问题只有在核心情节来源中的问题得到解决之后才有意义。 – 2010-06-23 05:15:26

+0

正如您从核心讨论列表中引用的答案所表明的那样,您(或原始海报)似乎试图做一些不合适的事情(编译为SDK)。毫不奇怪,它并不是一个开箱即用的工具,也不是任何人都已经着手解决问题,除非您想自己解决问题,否则您可能会开始寻找。 – 2010-06-23 05:17:25

+0

核心阴谋所有者似乎并不知道答案,但我认为其中的一位C大师会看到类似的东西。 – amo 2010-06-23 12:35:52

回答

11

在这方面的^是苹果的blocks执行。

我的第一个猜测是你试图用GCC 4.0编译库,它不识别语法。也许尝试将您的编译器设置更改为GCC(或LLVM-GCC)4.2。

另一个与编译器相关的选项可能会有所帮助,那就是将编译器完全从GCC改变开来。如果Clang在编译时遇到麻烦,那么很可能会向您显示更好的错误消息。

+0

是的!它使用GCC 4.0。更改为GCC 4.2修复了这个问题。 – amo 2010-06-24 03:40:47

+3

我有完全相同的问题。在我的情况下,编译器设置为GCC 4.2。将其更改为LLVM-GCC 4.2解决了该问题。 – aogan 2010-06-28 23:12:46

相关问题