2016-10-27 54 views
1

在一个较旧的项目中我在几个地方使用了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宏,它定位到该文件:

xcode nav bar

具有适用于MacOS宏值,而不是适用于iOS的那些:

#define TARGET_OS_OSX    1 
#define TARGET_OS_IPHONE   0 

看来,它选择错误的SDK。不知道在哪里看/改变回正常。我查看了目标构建设置,并且它们看起来没问题。

谢谢!

+0

你有没有提到这个,http://stackoverflow.com/a/3748348/6742121? @Jakob – KAR

+0

是的,谢谢 - 目标的构建和运行良好,但这个问题的建议并没有缓解我所看到的问题。 – Jakob

回答

0

这似乎是一个Xcode 8.1的错误。问题似乎已经在Xcode 8.2 beta中解决了。

+0

Xcode 8.3.2中这个绝对令人恼火的问题仍然非常活跃 – George