Xcode 8 XCODE_VERSION_MAJOR宏 - 编译问题

时间:2016-08-11 04:35:56

标签: ios xcode xcode8

我有一个没有在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中,我得到以下编译错误

Compilation Error

使用XCODE_VERSION_MAJOR宏是否有任何解决方法是Xcode 8。

1 个答案:

答案 0 :(得分:1)

使用 __ IPHONE_OS_VERSION_MAX_ALLOWED 宏代替 XCODE_VERSION_MAJOR 构建属性解决了编译问题。

现在该项目可用于Xcode 7和Xcode 8。

由于 XCODER_VERSION_MAJOR 以及存储XCODE版本的更多属性保存了无效的八进制数,因此这些属性将从Xcode 8中变得无法使用。错误已为此创建。