使用 Swift Xcode 中的语法突出显示和自动完成有什么问题

What's wrong with the syntax highlighter and autocompletion in Xcode using Swift

Objective-C开发项目时一切顺利,SourceKitService占用CPU0%, 自动完成几乎是即时的。

但是,如果我稍微更改 Swift 代码,则需要花费很多秒才能完成任何操作(突出显示语法并检查、窃窃私语等)或者当我想要要查看具有 cmd 快捷方式的某些内容的实现,请再次 SourceKitService 在 CPU 的 xxx% 上并花费几秒钟。更改代码中的字符导致等待 10 秒才能看到一切正常,这太多了。

当然,我尝试按照建议删除 derivedDataModuleCachecom.apple.dt.Xcode 等,但它不是固定的,仍在发生,让我慢下来。

有人知道如何真正解决或至少改进这个问题吗?

我建议尝试 Build Time Analyzer 看看是否有特定的事情会减慢编译器的速度。根据我的经验,主要问题是复杂的类型推断,通常来自多个链接的 .maps、复杂的关联类型和泛型。

Swift 编译器比 Objective-C 编译器做的更多,也更新了很多,因此它不太可能像 stable/fast 那样持续一段时间。我知道编译时间和 IDE 稳定性是他们意识到的问题并且正在努力改进。希望现在我们已经(承诺)了源代码兼容性,其中一些问题将在明年得到很大改进。不幸的是,在那之前我们可能不得不跳过一些障碍。

在这种情况下,它与 CocoaPods 有关。它正在将 .h 文件复制到构建目录中,SourceKit 感到困惑。

我将这个脚本添加到我的项目中,SourceKit 停止了一点,但它仍然慢得离谱。

function removeHeaders() {  
    find $BUILD_ROOT/Debug-iphonesimulator/  -name '*.h' -exec rm -f {} \;  
}  
removeHeaders

参考。 Xcode Swift Syntax Highlighting and Code Completion Completely Broken

Note: Unfortunately this solution breaks debugging console and archiving. So remove the script if it is needed.