内置预处理器令牌来检测iPhone平台

Ric*_*ney 6 iphone preprocessor

是否有一个预处理器令牌可用于在构建时检测任何iPhone设备或模拟器?我目前正在使用:

#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
    // This is an iPhone build
#endif
Run Code Online (Sandbox Code Playgroud)

这是推荐的方法还是有更好的方法?我更喜欢内置宏,即由编译器定义,而不是我必须包含的SDK头文件.

我现在并不关心区分iPhone OS版本,但是如果有一个Apple文档页面详细说明了所有相关的宏,当它们被定义和未定义时,我会很感激它的链接,因为我的搜索已经来了到目前为止.

谢谢!

Lou*_*arg 13

这个网站我们发现你需要TARGET_OS_IPHONE

#if TARGET_OS_IPHONE
//Do iPhone stuff
#else
//Do Mac stuff
#endif
Run Code Online (Sandbox Code Playgroud)


Nat*_*ies 8

您正在寻找的文件是TargetConditionals.h,它定义了您感兴趣的所有宏.您可以在每个版本的SDK中找到它,例如2.2 SDK的以下路径:

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/usr/include/TargetConditionals.h
Run Code Online (Sandbox Code Playgroud)