我有一个没有在XCode 8中编译的iOS项目。如果我修复了编译问题,它在XCode 7中不起作用。 但我需要让项目在XCode 7和8中工作。所以我试图使用预处理器宏来进行条件编译
我在Xcode预处理器宏部分中定义了宏,如下所示
XCODE_VERS=$(XCODE_VERSION_MAJOR)
我的代码检查下面的版本
#if XCODE_VERS == "0700"
@interface SampleTableCell : UITableViewCell
#else
@interface SampleTableCell : UITableViewCell<CAAnimationDelegate>
#endif
在Xcode 8中,XCODE_VERSION_MAJOR被转换为0800.这不是有效的八进制数。 它在Xcode 7中工作正常,但在XCode 8中,我得到以下编译错误
使用XCODE_VERSION_MAJOR宏是否有任何解决方法是Xcode 8。
答案 0 :(得分:1)
使用 __ IPHONE_OS_VERSION_MAX_ALLOWED 宏代替 XCODE_VERSION_MAJOR 构建属性解决了编译问题。
现在该项目可用于Xcode 7和Xcode 8。
由于 XCODER_VERSION_MAJOR 以及存储XCODE版本的更多属性保存了无效的八进制数,因此这些属性将从Xcode 8中变得无法使用。错误已为此创建。