我刚刚将核心图升级到已经运行成功图的应用程序中的最新版本。我遵循了相当简单的说明,但是我在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 :(得分:11)
该上下文中的^
是Apple对blocks的实现。
我的第一个猜测是你试图用GCC 4.0编译库,它不能识别语法。也许尝试将编译器设置更改为GCC(或LLVM-GCC)4.2。
另一个与编译器相关的选项可能有助于将编译器完全从GCC更改。如果Clang也遇到编译问题,很可能会向您显示更好的错误信息。