'^'标记之前的语法错误

amo*_*amo 2 c iphone xcode objective-c core-plot

我刚刚将核心图升级到已经运行成功的应用程序的最新版本.我遵循了相当简单的说明,但是我在UIView.h中遇到了20个语法错误.似乎我并不孤单,但没有人发布过该问题的解决方案.

一个例子:

这段代码来自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);
Run Code Online (Sandbox Code Playgroud)

给出编译错误"'''令牌之前的语法错误":

/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
Run Code Online (Sandbox Code Playgroud)

它认为该解决方案与构建设置有关.什么会导致这个错误?我不熟悉Objective-C中的(^)语法.

Mat*_* B. 11

^在这方面是苹果的执行.

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

另一个与编译器相关的选项可能有助于将编译器完全从GCC更改.如果Clang也有编译问题,很可能会给你一个更好的错误信息.

  • 我有完全相同的问题.在我的情况下,编译器设置为GCC 4.2.将其更改为LLVM-GCC 4.2修复了该问题. (3认同)