Xcode 8语法高亮不起作用

时间:2016-09-20 15:48:10

标签: ios objective-c swift xcode syntax-highlighting

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

enter image description here

我已更新项目以支持 Xcode 8 ,但只有少数内容发生了变化:

  • 在构建设置中支持Swift 2.3 enter image description here

  • 并修复了与UIKit中隐式展开属性相关的一些错误 enter image description here

Xcode 8 的所有项目编译正常之后。

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

enter image description here

还有<<自动填充的错误类型>> 问题: enter image description here

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

9 个答案:

答案 0 :(得分:20)

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

  

我在WWDC的苹果工程师那里得到了关于这个问题的帮助并得到了解决   它。问题源于cocoapods ......显然cocoapods是   将.h文件复制到构建目录中并且SourceKit正在获取   困惑。我不完全确定.h文件被复制的原因 -   那里不需要它们。所以修复是添加一个后构建脚本   在构建阶段中,在构建后删除标题   它看起来像这样:

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

答案 1 :(得分:13)

<强>固定即可。问题与项目中存在未编译的目标有关。所以如果你有目标,例如A,B,C和C未编译,导致语法高亮问题。

答案 2 :(得分:8)

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

否则退出并重新开启

答案 3 :(得分:3)

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

它对我有用的唯一解决方案是重新启动Xcode ,但有几次我需要完成重启我的Mac ;我仍然不知道究竟是什么导致了这个令人讨厌的问题。

答案 4 :(得分:3)

构建设置中将使用Legacy Swift语言版设置为 YES 帮助我解决类似问题

答案 5 :(得分:3)

评论然后取消注释受影响的线路对我有用。

答案 6 :(得分:1)

就我而言:

在Finder中,我导航到 user-&gt; Library-&gt; Developer-&gt; Xcode-&gt; DerivedData 。关闭Xcode项目,然后关闭DerivedData。这对我有用。

快乐编码...... :)

答案 7 :(得分:0)

对我来说,由于在“构建阶段”下的“编译源”中缺少文件,因此代码完成/突出显示无法正常工作。我添加了该文件,它可以正常工作。

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

答案 8 :(得分:-1)

正如其他人在上面所述 - 如果我创建一个新标签..或4然后关闭通常执行它的标签。有时评论一行然后立即取消注释也可以。我已经厌倦了使用几个键来完成这个并且为我做了一个简单的AppleScript。

创建Automator&#39;服务&#39;并将此脚本添加到它。在键盘下的系统偏好设置 - &gt;快捷方式 - &gt;服务找到你的新服务并将其分配给一个空的功能键(我使用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