Xcode 8 语法高亮不工作

Xcode 8 syntax highlighting doesn't work

上面的代码在 Xcode 7 中具有 正确的语法突出显示 。它是 Obj-C + Swift:

的混合体

我已经更新了项目以支持 Xcode 8 并且只更改了一些内容:

毕竟项目编译得很好 Xcode 8

但是 Swift 中集成的 Obj-C 代码没有任何语法高亮显示,反之亦然:

并且存在 << 错误类型 >> 自动完成问题:

删除派生数据没有帮助,Xcode 要么重新启动 :) CocoaPods 版本 0.38.2,iOS 7

我在使用 Xcode 8 GM 时也发生过这种情况,但在我使用 Xcode 7 时也发生过很多次:有时自动完成功能和语法突出显示会在没有通知的情况下消失。

对我有用的唯一解决方案是重启Xcode,但有几次我需要完成重启我的Mac ;我仍然不知道到底是什么导致了这个恼人的问题。

已修复。问题与未编译的项目中存在目标有关。因此,如果您有目标,例如A、B、C 和 C 未编译,这会导致语法突出显示出现问题。

构建设置中将使用旧版Swift语言版本设置为 ] 帮我解决了类似的问题

这个答案帮助我 https://forums.developer.apple.com/thread/46223 我的一个项目:

I got help from an apple engineer at WWDC on this issue and resolved it. The problem stemmed from cocoapods... Apparently cocoapods was copying .h files into the build directory and SourceKit was getting confused. I'm not entirely sure why the .h files were being copied - they aren't needed there. So the fix was to add a post-build script in your build phases section that removes the headers after a build.
It would look something like this:

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

我发现当语法突出显示失败时,Xcode 中的切换选项卡修复了问题¯_(ツ)_/¯ 有时我发现我需要切换到至少 4 个不同的选项卡才能出现再次开启。

否则退出并重新打开

评论然后取消评论受影响的行对我有用。

正如其他人在上面所说的那样 - 如果我创建一个新选项卡 .. 或 4 然后关闭通常执行此操作的选项卡。有时注释掉一行然后立即取消注释也能达到目的。我厌倦了使用几个键来完成这个,并制作了一个简单的 AppleScript 来帮我完成。

创建一个 Automator 'service' 并将此脚本添加到其中。在键盘 -> 快捷方式 -> 服务下的系统偏好设置中找到您的新服务并将其分配给一个空功能键(我使用 F1),现在您有一个 1 键修复!

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

就我而言:

在 Finder 中,我导航到 user->Library->Developer->Xcode->DerivedData。关闭您的 Xcode 项目,然后清除 DerivedData。这对我有用。

快乐编码...:)

对我来说,代码 completion/highlighting 由于构建阶段下的编译源中缺少文件而无法运行。我添加了那个文件并且它有效。

希望这对任何人都有帮助。