iOS 11でのみ利用可能なAPIを呼び出すマクロを定義します。私は全力を尽くしたが失敗した。ここに私のコードです。APIチェックでマクロを定義する方法は?
#ifdef __IPHONE_11_0
if (@available(iOS 11.0, *)) {
#define KNGTUtilIsIPhoneX [UIApplication sharedApplication].delegate.window.safeAreaInsets.top > 0
} else {
#define KNGTUtilIsIPhoneX NO
}
#else
#define KNGTUtilIsIPhoneX NO
#endif
マクロはトップレベルのスコープ内でしか定義できないようです。だから私のコードをコンパイルすることはできません。 @available
を使用しないと、コンパイラは次のメッセージで私に警告します。
'safeAreaInsets' エレガントな解決策を見つけるために私を助けてくださいiOSの11.0以降
でのみ使用可能です。事前に多くの感謝!
マクロは決して洗練されたソリューションではありません。 – Sulthan