警告:不必要的检查最低部署目标

时间:2015-09-12 01:48:53

标签: ios swift swift2 suppress-warnings ios-extensions

我有一个Swift类,它与几个具有不同部署目标的目标相关联,主项目具有iOS 7最低要求,并且有一个iOS 8目标扩展。

现在,当我编译项目时,编译器会在这行代码上抛出警告:

    if #available(iOS 8.0, *) { ... }

"不必要的检查' iOSApplicationExtension&#39 ;;最低部署目标确保守卫永远是真实的"

我检查了构建设置选项,发现没有切换来杀死swift警告。

我尝试通过此行单独定义iOSApplicationExtension版本目标,但没有成功:

    if #available(iOS 8.0, iOSApplicationExtension 8.0, *) { ... }

有没有办法压制这个烦人的消息?

2 个答案:

答案 0 :(得分:1)

找到一个难以理解的解决方法来消除警告,但我希望有更好的方法:

在iOS 8+目标构建设置中,我在Build Settings中定义了一个预编译标志 - > Swift编译器 - 自定义标志 - >其他Swift Flags:

  

-D iOS8target

然后我改变了代码:

#if iOS8target
    // iOS 8+ compatible code
#else
    if #available(iOS 8.0, *) {
        // repeat iOS 8+ compatible code again!
    } else {
        // iOS 7 code
    }
#endif

它没有重构和丑陋,但它有效!

<强>更新 有一个swift编译器开关-suppress-warnings可以省略所有警告。但它也抑制了有用的警告。 此外,如果只有一个特定文件发出警告,则可以在“构建阶段”窗格中使用-w标志。它还会禁止有用的警告但仅限于一个文件。

答案 1 :(得分:0)

  

请将您的部署目标检查到General并从9.0进行设置   至7.0或更低。此警告将自动删除。