在一个较旧的项目中,我在几个地方使用 TARGET_OS_IPHONE 预编译器宏来实现一些 iOS 特定的东西。
这在过去可以正常工作,但目前 Xcode 似乎将这个宏“反转”,使得代码完成在 #if TARGET_OS_IPHONE block 中不起作用,即使我的构建目标是一个 iOS 应用程序。也没有语法高亮。它语法高亮并代码完成 #else block 中的内容,这些内容应该只发生在 macOS 目标上。 据我所知,它构建正确,只是编辑器看起来很困惑。这使得编辑代码非常烦人。我正在使用 Xcode 8.1 GM。
这可能是一个 Xcode 错误,还是我的项目中的某些配置搞砸了?似乎 Xcode 正在查看错误的 header 是有原因的。当我 CMD 单击 TARGET_OS_IPHONE 宏时,它会导航到此文件:
它有 macOS 的宏值,而不是 iOS 的宏值:
#define TARGET_OS_OSX 1
#define TARGET_OS_IPHONE 0
似乎它选择了错误的 SDK。不知道在哪里看/把它改回正常。我查看了目标build设置,它们看起来还不错。
谢谢!
Best Answer-推荐答案 strong>
这似乎是一个 Xcode 8.1 错误。问题似乎已在 Xcode 8.2 beta 中自行解决。
关于ios - Xcode TARGET_OS_IPHONE 似乎很困惑,bug 还是配置错误?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40285483/
|