是不是可以用swift使用“Analyze”?

时间:2015-03-29 05:44:17

标签: xcode swift xcode6

以前使用objective-c代码,我可以“分析” - CMD + Shift + B和Xcode会警告我各种各样的错误。

似乎用Swift,我没有错!没有任何警告!但显然我的代码中存在内存泄漏。

我是否需要启用一些设置才能让Swift正确分析我的代码? (我知道我应该使用分析器并在实际设备上进行测试,但我想知道为什么“分析”没有做任何事情。

3 个答案:

答案 0 :(得分:14)

不幸的是没有。即使很多版本以后,最新版本的XCode(6.4)仍然无法做Swift分析。 “Analyze”选项仅适用于项目中的Objective C文件。

让我们希望下一个版本能够拥有它,以及仍然仅限于Objective C代码的重构功能。

答案 1 :(得分:4)

到目前为止(Xcode 8.3.x)静态代码分析跳过了Swift代码。一些Swift警告涵盖了分析仪先前检测到的一些问题。

即将推出的Xcode 9(2017年WWDC上展示)也没有宣布这方面的任何变化。

Obj-C的静态分析器检测到的许多问题在很大程度上都是由实际的Swift语言阻止(例如,在switch语句中意外跌落)。以前由分析器捕获的其他问题和场景现在由Swift编译器直接捕获。

导致程序崩溃的许多流程和场景(例如,访问空指针,留下悬空指针或访问已释放的内存块)在Swift中几乎不可能实现。 Swift强类型,大量使用可选项,完全覆盖协议的要求,以及在枚举上切换大小写等,消除了分析器以前发现的另一堆问题。

Swift静态代码分析器需要在分析程序逻辑方面达到另一个层次,这要困难得多,理论上不可能完全完成。

所以 - 虽然我很高兴想到未来的Xcode Analyzer,我不会屏住呼吸等待它

答案 2 :(得分:-1)

更新

随着越来越多的人投票支持我的帖子,只是我身边的小更新。苹果似乎确实允许按下选项"分析"但在后台它什么都不做(2016.04.21的状态,虽然我目前不在iOS上工作,可能我没有最新版本的Xcode)。

低于原帖:

仅适用于本文的下一位读者。此时Xcode 7已经能够分析Swift项目。重构仍然没有奏效。

BR, Darek