Xcode 8 用处不大的新特性:CLANG_WARN_INFINITE_RECURSION

436 查看

Xcode 8 的 clang 新的警告控制,当所有路径都通过一个函数都调用自身时,会产生一个警告 ⚠️。
下图展示了,如何开启该功能(默认开启)。

111711809-7d18a1538f2a8b59

下面展示了产生该警告的一种情况

121711809-b1535d0930652b9b

值得注意的地方是,对于大部分的 iOS 开发者,该功能的作用微乎其微。具体原因可以看下面的截图。

131711809-0c598f9960548ab2
  • test1 函数。在 if-else 语句中,存在第一个 if 分支,该分支没有直接调用 test1(),所以不会产生警告⚠️。
  • OC 中的方法调用。因为 OC 是动态语言,函数调用顺序是在程序执行时确定的(在特殊情况下,该写法不会产生死循环)。所以,方法调用不会产生任何警告⚠️。