Swift:如何最大化 Xcode 中的警告? swiftc 中 -Wall 的等价物是什么?

标签 swift xcode

我在一个大型 iOS 应用程序项目中有许多仅限 Swift 的框架目标。我想探索 Swift 编译器选项的严格性,以了解它们是否可以提供任何额外的好处。

Xcode 中有很多警告,但大多数似乎与 Clang 相关。我们可以为 Swift 编译器做的 -Wall-Weverything 的等价物是什么?

一个例子是防止局部变量隐藏的警告:Apple LLVM 9.0 - Warnings - All languages/Hidden local variables:在 GCC_WARN_SHADOW = YES 下罩,因此它不会影响 swiftc 编译器。

最佳答案

没有。多年以来,C 语言积累了一层又一层的警告,然后像“不属于‘所有警告’的警告”这样的藤壶和许多编译器,再加上一种允许很多你通常不应该做的事情的语言。

Swift 还很年轻,在其短暂的生命中曾多次破坏向后兼容性。它存在的时间还不够长,还需要奇怪的向后兼容选项。 C 作为警告添加的许多内容,Swift 只是将其设为非法或要求您明确说明。

也就是说,绝对已经存在其他层次的警告。第一组是通过静态分析器(Xcode 中的 Cmd-Shift-B)找到的,第二组存在于像 swiftlint 这样的工具中。它与 C 语言中的 linters 起着相同的作用。linter 和编译器警告之间的界线是模糊且不断变化的,随着时间的推移,您可能会看到一些东西从 linter 转移到编译器。但我仍然怀疑您是否会看到像 GCC(Clang 继承的)一样复杂的警告系统。

关于Swift:如何最大化 Xcode 中的警告? swiftc 中 -Wall 的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46513210/

相关文章:

ios - 在 Swift 中异步改变集合的惯用方法

ios - 收到带有数据的远程通知时激活 iOS 应用程序

ios - 在 Swift 中声明全局变量

ios - Xcode 6 界面生成器不显示自定义类

ios - Xcode 4 : Exceptions not being logged to the console

ios - 创建需要(依赖于)另一个框架的框架

swift - 从 XPC 服务创建 NSXPCConnection

ios - 如何从键盘打印格式化文本

IOS Xcode 5.1 在单独的行中搜索路径

xcode - mac 上缺少 OpenGL 头文件