gpt4 book ai didi

ios - 如何定义带有 API 检查的宏?

转载 作者:行者123 更新时间:2023-11-29 11:39:02 24 4
gpt4 key购买 nike

我想定义一个调用仅在 iOS 11 中可用的 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' is only available on iOS 11.0 or newer

请帮我找到一个优雅的解决方案。非常感谢!

最佳答案

我觉得你可以写一个调用api的函数,然后定义这个函数。例如,使用您的代码我可以重写。

#define KNGTUtilIsIPhoneX isIphoneX()

BOOL isIphoneX() {
if (@available(iOS 11.0, *)) {
return [UIApplication sharedApplication].delegate.window.safeAreaInsets.top > 0;
}

return NO;
}

关于ios - 如何定义带有 API 检查的宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47590978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com