1

我现在在 iOS8 中工作,我想检查 CFType 'SecAccessControlRef' 是否可用。由于该应用程序将支持 iOS 7,如果不进行检查,该应用程序将崩溃。对于常规的 NSClass 我只会使用类似的检查

if (NSClassFromString('SomeClass') == NULL)

但是非 NSClass 项目有类似的东西吗?

4

2 回答 2

4

您可以测试支持该类型的函数之一,而不是测试类型本身。当框架被弱链接时,NULL如果框架不存在,则 C 函数的地址将是。例如,您应该能够使用类似的东西:

BOOL isSecAccessControlRefAvailable = SecAccessControlCreateWithFlags != NULL;

请参阅Apple 的SDK 兼容性指南中的使用弱链接方法、函数和符号

于 2015-04-24T19:10:44.160 回答
0

这不完全是您想要的,但我已将其用于类似类型的问题:

if (&kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly == NULL) {
    return NO; // must be on iOS7
}
于 2015-04-24T18:19:16.397 回答