我现在正在iOS8中工作,我想检查CFType'SecAccessControlRef'是否可用。由于该应用程序将支持iOS 7,而不进行检查,该应用程序将崩溃。对于常规NSClass,我只会使用像
这样的检查public static string GetValue(RegistryKey key, string value)
{
string valueStr=(string)key.GetValue(value);
return string.IsNullOrWhiteSpace(valueStr)?null:valueStr.ToLower();
}
但非NSClass项目有类似的东西吗?
答案 0 :(得分:4)
您可以测试支持该类型的其中一个函数,而不是测试类型本身。当框架弱链接时,如果框架不存在,C函数的地址将为NULL
。例如,您应该可以使用以下内容:
BOOL isSecAccessControlRefAvailable = SecAccessControlCreateWithFlags != NULL;
请参阅Apple的SDK Compatibility Guide中的使用弱链接的方法,函数和符号。
答案 1 :(得分:0)
这并不是您想要的,但我已经将其用于类似的问题:
if (&kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly == NULL) {
return NO; // must be on iOS7
}