我现在在 iOS8 中工作,我想检查 CFType 'SecAccessControlRef' 是否可用。由于该应用程序将支持 iOS 7,如果不进行检查,该应用程序将崩溃。对于常规的 NSClass 我只会使用类似的检查
if (NSClassFromString('SomeClass') == NULL)
但是非 NSClass 项目有类似的东西吗?
我现在在 iOS8 中工作,我想检查 CFType 'SecAccessControlRef' 是否可用。由于该应用程序将支持 iOS 7,如果不进行检查,该应用程序将崩溃。对于常规的 NSClass 我只会使用类似的检查
if (NSClassFromString('SomeClass') == NULL)
但是非 NSClass 项目有类似的东西吗?
您可以测试支持该类型的函数之一,而不是测试类型本身。当框架被弱链接时,NULL
如果框架不存在,则 C 函数的地址将是。例如,您应该能够使用类似的东西:
BOOL isSecAccessControlRefAvailable = SecAccessControlCreateWithFlags != NULL;
请参阅Apple 的SDK 兼容性指南中的使用弱链接方法、函数和符号。
这不完全是您想要的,但我已将其用于类似类型的问题:
if (&kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly == NULL) {
return NO; // must be on iOS7
}