Xcode 8和预处理器宏

opt*_*ptz 6 macros xcode objective-c ios c-preprocessor

自从最新的XCode更新8.1(Build 8B62)以来,我遇到了与预处理器宏相关的语法高亮/代码完成的奇怪问题.

他们在更新之前一直使用的XCode 8 GM种子工作得很好,但现在XCode在选择方案时无法识别正确的目标.例如,我有一个带有2个目标的控制器静态库 - 一个用于iOS,另一个用于Apple Watch.在每个我使用宏(APP/WATCH)进行平台特定操作.但是当我在APP目标中时,Xcode编辑器突出显示代码,好像它是WATCH目标,而此目标的实际代码没有突出显示也没有自动完成.Xcode似乎随机检测来自不同目标的宏.另一方面,编译器总能检测到正确的代码并且100%正常工作,因此代码没有任何问题.这只是编辑.

此外,当我启动Xcode时,代码会突出显示大约一秒钟,然后再次获取所有白色文本.删除和读取所有方案都不起作用,清除和删除派生数据也不会对此产生影响.任何人有同样的问题,甚至解决这个问题?

编辑:我玩了一些目标和宏,我发现Xcode只从一个目标获取宏并丢弃所有其他目标,无论选择什么目标.有帮助吗?

opt*_*ptz 0

这是 XCode 8 中的一个实际错误。在 XCode 9(截至今天,2017 年 9 月 beta 6)中,它终于得到了解决。