Xcode 是否不可能使用;“分析”;斯威夫特?

Xcode 是否不可能使用;“分析”;斯威夫特?,xcode,swift,xcode6,Xcode,Swift,Xcode6,以前使用objective-c代码时,我可以“分析”-CMD+Shift+B,Xcode会警告我各种错误行为 看来有了斯威夫特,我不会做错什么!没有任何警告!但很明显,我的代码中存在内存泄漏 是否需要启用某些设置才能让Swift正确分析我的代码?(我知道我应该在实际设备上使用探查器并进行测试,我确实这么做了,但我想知道为什么“分析”什么都不做。不幸的是,没有。即使是在很多以后的版本中,最新版本的XCode(6.4)仍然无法进行快速分析。“分析”选项只适用于项目中的目标C文件 我们希望下一个版本会

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

看来有了斯威夫特,我不会做错什么!没有任何警告!但很明显,我的代码中存在内存泄漏


是否需要启用某些设置才能让Swift正确分析我的代码?(我知道我应该在实际设备上使用探查器并进行测试,我确实这么做了,但我想知道为什么“分析”什么都不做。

不幸的是,没有。即使是在很多以后的版本中,最新版本的XCode(6.4)仍然无法进行快速分析。“分析”选项只适用于项目中的目标C文件

我们希望下一个版本会有它,还有重构功能,这些功能仍然局限于目标C代码。

更新:

随着越来越多的人投票反对我的帖子,我只做了一点小小的更新。看起来苹果确实允许按下选项“分析”,但在后台它什么也不做(2016.04.21,尽管我目前没有在iOS上工作,可能我没有最新版本的Xcode)

下面是我原来的帖子:


仅供本文的下一位读者阅读。目前Xcode 7已经能够分析Swift项目。不过重构仍然不起作用

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

此外,即将发布的Xcode 9(在WWDC 2017中发布)并未宣布这方面的任何变化

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

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

一个快速的静态代码分析器将需要在分析程序逻辑时进入另一个层次,这要困难得多,理论上也不可能完全做到


因此-虽然我很高兴想到未来的Xcode分析器,但我不会屏息等待它

注意Swift是最近的,所以静态分析器很可能不知道如何分析代码。我同意-它(叮当声)可能还不知道如何分析Swift代码。但如果分析器生成某种警告,表明它不可用,那还是很好的。目前在我的Swift项目中,我不知道分析器是否只是没有运行,或者我是否第一次编写了非常棒的代码。老实说,我认为大部分事情Analyzz对于Objective-C,Swift编译器在正常编译过程中已经做到了。Swift的优点是它比C或Obj-C更简单,它有强大的类型,内存处理已经隐藏在内部,因此分析要简单得多。我认为Obj-C中的代码分析器检测到的大多数问题都是针对ost部分被实际的Swift语言阻止。我们在Xcode 7中启用了“分析”按钮,但它不会分析任何Swift代码。Xcode 11.2,仍然没有任何内容。没有一些基本的静态分析器是非常令人愤怒的。。。