在一个较旧的项目中我在几个地方使用了TARGET_OS_IPHONE预编译器宏来实现一些特定于iOS的东西。Xcode TARGET_OS_IPHONE似乎困惑,错误或配置错误?
这用于在过去良好工作,但目前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。不知道在哪里看/改变回正常。我查看了目标构建设置,并且它们看起来没问题。
谢谢!
你有没有提到这个,http://stackoverflow.com/a/3748348/6742121? @Jakob – KAR
是的,谢谢 - 目标的构建和运行良好,但这个问题的建议并没有缓解我所看到的问题。 – Jakob