首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@available检查不适用于Xcode 8

@available检查不适用于Xcode 8
EN

Stack Overflow用户
提问于 2017-10-25 04:44:07
回答 1查看 3.2K关注 0票数 0

我正在用Xcode 8.0编写objective代码,以提高API的可用性

代码语言:javascript
复制
 if (@available(iOS 11, *)) {
        // iOS 11 (or newer) ObjC code
 } else {
        // iOS 10 or older code
 }

不幸的是,编译器触发:

未识别的平台名称iOS

为什么?

EN

回答 1

Stack Overflow用户

发布于 2017-10-25 08:23:07

就像我在How to check iOS version?上写的

  • @available是在Xcode 9中添加的
  • #available是在Xcode 7中添加的

如果需要测试Xcode的多个版本的可用性,可以使用#ifdef __MAC_10_13或更好的#if __clang_major__ >= 9检测Xcode 9,如下所示:

代码语言:javascript
复制
#if __clang_major__ >= 9
    // Xcode 9+
    if (@available(macOS 10.10, iOS 8.0, watchOS 2.0, tvOS 9.0, *)) {
        // iOS 8+
    }
#else
    // Xcode 8-
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_9_2) {
        // iOS 8+
    }
#endif
    else {
        // iOS 7-
    }

实际案例示例摘自:https://github.com/ZipArchive/ZipArchive/blob/master/SSZipArchive/SSZipArchive.m

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46924145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档