【问题标题】:Detect BOOL availability to support multiple iOS versions?检测 BOOL 可用性以支持多个 iOS 版本?
【发布时间】:2014-08-19 17:44:16
【问题描述】:

我试图找出如何检测外部 BOOL 是否可用,以便我可以支持 iOS 7 和 8。iOS 8 中的新功能是一个 BOOL,您可以使用它来确定是否启用了降低透明度,我想要在 if 语句中实现该检查,但这将在 iOS 7 上崩溃,而无需首先检查 extern BOOL 是否可用。我很惊讶我无法从网络搜索中找到答案。

这是 BOOl 的定义:

UIKIT_EXTERN BOOL UIAccessibilityIsReduceTransparencyEnabled() NS_AVAILABLE_IOS(8_0);

以及我使用它的位置:

if (UIAccessibilityIsReduceTransparencyEnabled()) {
    NSLog(@"transparency is disabled");
}

【问题讨论】:

  • @user3386109 请不要检查操作系统版本。有更好的解决方案。

标签: ios objective-c boolean backwards-compatibility


【解决方案1】:

请阅读SDK Compatibility Guide

你需要做的是检查函数UIAccessibilityIsReduceTransparencyEnabled是否存在:

if (UIAccessibilityIsReduceTransparencyEnabled != NULL) {
    // function exists, use it
    if (UIAccessibilityIsReduceTransparencyEnabled()) {
        NSLog(@"transparency is disabled");
    }
} else {
    // function doesn't exist, do something else
}

【讨论】:

  • 感谢您提供指向该文档的链接。将是一个很好的阅读。
猜你喜欢
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 2015-01-22
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
  • 2019-07-19
相关资源
最近更新 更多