Xcode 8 syntax highlighting doesn't work

2019-02-01 20:34发布

The code above has correct syntax highlighting in Xcode 7. It is mix of Obj-C + Swift:

enter image description here

I've updated project to support Xcode 8 and only few things was changed:

  • In Build Settings Swift 2.3 support enter image description here

  • And have fixed few errors related to implicitly unwrapped properties in UIKit enter image description here

After all the project is compiled fine for Xcode 8.

But Obj-C code integrated in Swift doesn't have any syntax highlighting and vice versa:

enter image description here

And there is << error type >> problem with autocomplete: enter image description here

Derived data deleting doesn't help, Xcode restart either :) CocoaPods version 0.38.2, iOS 7

8条回答
【Aperson】
2楼-- · 2019-02-01 20:44

This answer helped me https://forums.developer.apple.com/thread/46223 with one of my projects:

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  
查看更多
该账号已被封号
3楼-- · 2019-02-01 20:44

As others have stated above - if I create a new tab ..or 4 then close the tab that usually does it. Sometimes commenting out a line then immediately uncommenting does the trick as well. I got tired of using several keys to accompolish this and made a simple AppleScript to do it for me.

Create a Automator 'service' and add this script to it. In System Preferences under Keyboard -> Shortcuts -> Services find your new service and assign it to an empty function key (I used F1) and now you have a 1 key fix!

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
查看更多
冷血范
4楼-- · 2019-02-01 20:47

In my case:

In Finder I navigated to user->Library->Developer->Xcode->DerivedData. Close your Xcode Project then Clear DerivedData. It's work for me.

Happy Coding...:)

查看更多
聊天终结者
5楼-- · 2019-02-01 20:53

It happened also to me with Xcode 8 GM but also lots of time when I used Xcode 7: sometimes the auto-complete feature and the syntax highlighting die without notice.

The only solution that it works for me is restart Xcode but a few times I needed to complete reboot my Mac; I still don't know exactly what causes this annoying problem.

查看更多
6楼-- · 2019-02-01 20:55

Fixed. Problem was related to the presence of target in project which is not compiled. So if you have targets e.g. A, B, C and C is not compiled this cause problems with syntax highlighting.

查看更多
乱世女痞
7楼-- · 2019-02-01 20:55

I have found that when syntax highlighting falls over, switching tabs in Xcode fixes the issue ¯_(ツ)_/¯ sometimes I find I need to switch to at least 4 different tabs before it comes on again.

Otherwise a quit and reopen

查看更多
登录 后发表回答