检测BOOL可用性以支持多个iOS版本?

时间:2014-06-28 23:11:01

标签: ios objective-c boolean backwards-compatibility

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

以下是BOOl定义:

UIKIT_EXTERN BOOL UIAccessibilityIsReduceTransparencyEnabled() NS_AVAILABLE_IOS(8_0);

我正在使用它的位置:

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

1 个答案:

答案 0 :(得分:8)

请阅读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
}