繁体   English   中英

Xcode 8和预处理器宏

[英]Xcode 8 and Preprocessor Macros

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

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

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

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

首先尝试“清洁构建”......如果这不起作用,那么试试吧

在预编译器中未在预编译头中使用的宏中有两个子标题

预编译器宏未在预编译头中使用
调试+
释放+

当你将鼠标悬停在它们上方时,旁边会出现加号。 按下这两个上的加号你应该得到:

预编译器宏未在预编译头中使用
调试+
任何架构| 任何SDK
释放+
任何架构| 任何SDK

按+后,您无需在此处输入任何内容。 一旦添加了这两个额外的条目,请尝试另一个干净的构建。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM