あなたはこのようにプリプロセッサディレクティブを使用することができます。
#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
またはその逆:
#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
違った名前のマクロを定義し、新しい可用性、マクロヘッダ、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
最終的な目的は何ですか?いくつかのケースは 'respondsToSelector:'などで解決する必要があります。 – Larme
ありがとうございます、私の最終的な目的は、QTKitが利用可能かどうかを判断することです。私はQuickTimeを使用するカメラクラスを使用していますが、10.12 SDKでは使用できません。 avfoundationを使用することになっていますが、ライブラリはまだ変換されていません。ソフトウェアを使用して10.12でコンパイルする人は、カメラを無効にする必要があります。私はopを編集して、私がC++を使っていると言っています。 –