在一个较旧的项目中,我在几个地方使用TARGET_OS_IPHONE预编译器宏来实现一些特定于iOS的东西。
过去以前工作得很好,但是目前Xcode似乎将这个宏“反转”,即代码完成在#if TARGET_OS_IPHONE
块内不起作用,即使我的构建目标是iOS应用程序。也没有语法突出显示。语法高亮和代码完成#else
块中的事情,这应该只发生在macOS目标上。 据我所知,它构建正确,但编辑器似乎很混乱。这使编辑代码非常恼人。我正在使用Xcode 8.1 GM。
这可能是一个Xcode错误,或者我的项目中可能有一些配置搞砸了?似乎Xcode正在寻找错误的标题是有原因的。当我通过CMD点击TARGET_OS_IPHONE
宏时,它会导航到此文件:
具有macOS的宏值,而不是iOS的宏值:
#define TARGET_OS_OSX 1
#define TARGET_OS_IPHONE 0
似乎它选择了错误的SDK。不确定在哪里查看/将其恢复正常。我查看了目标构建设置,看起来没问题。
谢谢!
答案 0 :(得分:0)
这似乎是一个Xcode 8.1错误。问题似乎已在Xcode 8.2 beta中得到解决。