TARGET_OS_IPHONE在编译时失败

时间:2018-04-18 22:40:29

标签: xcode compiler-errors compilation

我正在使用Xcode 9.3并且奇怪地尝试为iOS框架编译一些条件代码(也有一个macOS对应的代码)。

#if TARGET_OS_IPHONE || TARGET_OS_IOS
#warning "BUILDING IPHONE"
#else
#warning "BUILDING MAC"
#endif

奇怪的是,当它应该是“BUILDING IPHONE”时,我会收到“BUILDING MAC”的编译时警告。我有另一个我编译框架的iOS项目,当比较构建设置时,我找不到可见的差异,但是构建的框架没有正确编译我的条件代码。我做错了什么?

以下是此框架的构建设置的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:0)

傻傻的我。我正在运行此检查的头文件是从另一个头文件调用的。基本上,“呼叫”#39;代码尚未导入基础标题。以上添加的全局导入修复了它:

#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif