Mou*_*ian 15 suppress-warnings ios swift ios-extensions swift2
我有一个Swift类,它与几个具有不同部署目标的目标相关联,主项目具有iOS 7最低要求,并且有一个iOS 8目标扩展.
现在当我编译项目时,编译器会在这行代码上抛出警告:
if #available(iOS 8.0, *) { ... }
Run Code Online (Sandbox Code Playgroud)
"对'iOSApplicationExtension'进行不必要的检查;最小部署目标确保后卫始终为真"
我检查了构建设置选项,发现没有切换来杀死swift警告.
我试图通过这一行单独定义iOSApplicationExtension版本目标,但没有成功:
if #available(iOS 8.0, iOSApplicationExtension 8.0, *) { ... }
Run Code Online (Sandbox Code Playgroud)
有没有办法压制这个烦人的消息?
找到了一个丑陋的解决方法来消除警告,但我希望有更好的方法:
在 iOS 8+ 目标构建设置中,我在 Build Settings -> Swift Compiler - Custom Flags -> Other Swift Flags 中定义了一个预编译标志:
-D iOS8目标
然后我将代码更改为这样:
#if iOS8target
// iOS 8+ compatible code
#else
if #available(iOS 8.0, *) {
// repeat iOS 8+ compatible code again!
} else {
// iOS 7 code
}
#endif
Run Code Online (Sandbox Code Playgroud)
它没有重构且丑陋,但它有效!
更新:
有一个快速编译器开关-suppress-warnings可以忽略所有警告。但它也抑制了有用的警告。此外,如果只有一个特定文件发出警告,您可以-w在“构建阶段”窗格中使用标志。它还会抑制有用的警告,但仅限于一个文件。
| 归档时间: |
|
| 查看次数: |
4441 次 |
| 最近记录: |