这个答案对我的一个项目有帮助:https://forums.developer.apple.com/thread/46223
我在WWDC上向一位苹果工程师寻求帮助解决了这个问题。问题源于CocoaPods... 显然,CocoaPods正在将.h文件复制到build目录中,这使得SourceKit感到困惑。我不太确定为什么.h文件会被复制-它们不需要出现在那里。所以解决方法是在您的构建阶段部分添加一个后构建脚本,以删除构建后的标头。
它应该是这样的:
function removeHeaders() {
find $BUILD_ROOT/Debug-iphonesimulator/ -name '*.h' -exec rm -f {} \;
}
removeHeaders
问题已修复。问题与项目中存在未编译的目标有关。因此,如果您有目标例如A、B和C,而C未编译,则会导致语法高亮出现问题。
我在使用Xcode 8 GM时也遇到了这个问题,而且在使用Xcode 7时也经常出现:有时自动补全功能和语法高亮会突然失效。
唯一有效的解决方案是重新启动Xcode,但有几次我需要完全重新启动我的Mac;我仍然不知道是什么原因导致了这个烦人的问题。
在Build Settings中将Use Legacy Swift Language Version设置为YES有助于我解决类似的问题。
YES
生成了一堆编译器错误,但是将其翻转回NO
,清除缓存并重新构建,对于我的自动补全问题进行了修复。 - Adrian对受影响的行进行注释,然后取消注释,这对我很有效。
对我来说,由于在构建阶段的编译源中缺少文件,代码完成/高亮功能无法正常工作。我添加了该文件,现在它可以正常工作。
希望这能帮到任何人。
on run {input, parameters}
tell application "Xcode"
activate
tell application "System Events" to keystroke "t" using command down
delay (0.5)
tell application "System Events" to keystroke "w" using command down
delay (0.5)
tell application "System Events" to keystroke "/" using command down
delay (0.5)
tell application "System Events" to keystroke "/" using command down
delay (0.5)
end tell
return input
end run