我知道 Availability.h 中的宏用于 sdk 检测。但它们会导致_attribute_类型声明,我不知道如何将其用于我的目的。
我希望能够使用这样的常规定义:
#include "Availability.h"
#if IS_USING_SDK(__MAC_10_10)
do some declarations here
#endif
#if CURRENT_SDK < __MAC_10_12
do some declarations here
#endif
Run Code Online (Sandbox Code Playgroud)
对此有什么帮助吗?
编辑:我正在使用 C++
您可以像这样使用预处理器指令:
#include <AvailabilityMacros.h>
#if defined(MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
// code that requires the 10.12 or later SDK
#endif
Run Code Online (Sandbox Code Playgroud)
或其相反:
#if !defined(MAC_OS_X_VERSION_10_12) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
// code for SDKs 10.11 and earlier
#endif
Run Code Online (Sandbox Code Playgroud)
有一个较新的可用性宏标头 Availability.h,它定义了不同名称的宏:
#include <Availability.h>
#if defined(__MAC_10_12) && __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_12
// code that requires the 10.12 or later SDK
#endif
#if !defined(__MAC_10_12) || __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_12
// code for SDKs 10.11 and earlier
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
799 次 |
| 最近记录: |