Xcode 8 XCODE_VERSION_MAJOR 宏 - 编译问题

Xcode 8 XCODE_VERSION_MAJOR macro - Compilation issue

我有一个 iOS 项目无法在 XCode 8 中编译。如果我修复了编译问题,它就无法在 XCode 7 中运行。 但是我需要让项目在 XCode 7 和 8 中工作。所以我试图使用预处理器宏来进行条件编译

我已经在 Xcode 预处理器宏部分定义了宏,如下所示

XCODE_VERS=$(XCODE_VERSION_MAJOR)

我的代码检查版本如下

#if XCODE_VERS == "0700"
@interface SampleTableCell : UITableViewCell
#else
@interface SampleTableCell : UITableViewCell<CAAnimationDelegate>
#endif

在Xcode8中,XCODE_VERSION_MAJOR被翻译成0800。这不是有效的八进制数。 它在 Xcode 7 中工作正常,但在 XCode 8 中,我收到以下编译错误

是否有任何变通方法来使用 XCODE_VERSION_MAJOR 宏 Xcode 8.

编译问题已通过使用 __IPHONE_OS_VERSION_MAX_ALLOWED 宏而不是 XCODE_VERSION_MAJOR 构建属性得到解决。

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

由于 XCODER_VERSION_MAJOR 和其他一些存储 XCODE 版本的属性持有无效的八进制数,因此这些属性将从 Xcode 8. 已创建相同的错误。