不同 XCode 版本的编译错误

Compile errors for different XCode versions

我正在开发一个应 运行 在 iOS 版本 >= 7.0 上的应用程序。我目前正在使用模拟器测试我的应用程序。一旦我切换到 XCode 5 以便在 iOS 7 上测试我的应用程序,我发现评论我的代码非常烦人。 有什么干净直接的方法可以避免所有头痛吗?是否有任何有用的宏允许指定何时编译代码,何时不编译代码?

下载(Xcode>首选项>下载)中没有 iOS 7.1 模拟器吗?

如果您计划针对缺少您正在使用的新功能的旧 SDK 版本编译相同的代码,您应该使用 Availability.h 中的 __IPHONE_OS_VERSION_MAX_ALLOWED 宏。查看 header 对文档的评论,但它的简称是:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 80000
    // Do fallback path that does not depend on iOS features
#elif __IPHONE_OS_VERSION_MIN_REQUIRED < 8000
    if (check for availability of new feature at runtime)
        // Use new feature
    else 
        // Do fallback path that does not depend on iOS features
#else
    // Use new feature unconditionally
#endif

您还可以下载 iOS 7.1 模拟器 运行time 从 Xcode 6 和 运行 您的应用程序针对它(假设部署目标设置回7.1 或更早版本)。