【发布时间】:2017-03-10 04:32:51
【问题描述】:
在一个较旧的项目中,我在几个地方使用 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。不知道在哪里看/把它改回正常。我查看了目标构建设置,它们看起来还不错。
谢谢!
【问题讨论】:
-
你提到过这个吗,stackoverflow.com/a/3748348/6742121? @雅各布
-
是的,谢谢 - 虽然目标构建和运行良好,但该问题中的建议并不能缓解我看到的问题。
标签: ios objective-c xcode