2015-04-24 49 views
1

我現在在iOS8中工作,我想檢查CFType'SecAccessControlRef'是否可用。由於該應用程序將支持iOS 7,沒有檢查,該應用程序將崩潰。對於一個普通的NSClass,我只會使用一個支票,如如何檢查一個類或CFType是否可用Objective-C

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

但是有沒有類似的非NSClass項目?

+0

我能找到的最接近的是[this](https://www.secsign.com/fingerprint-validation-as-an-alternative-to-passcodes/)文章,它只是檢查用戶設備是否支持指紋驗證所有。 – dean

回答

4

,而不是測試爲本身類型您可以測試的功能之一是支持類型。當框架弱連接時,如果框架不存在,則C函數的地址將爲NULL。例如,你應該能夠使用類似:

BOOL isSecAccessControlRefAvailable = SecAccessControlCreateWithFlags != NULL; 

使用弱聯結方法,函數和符號在蘋果的SDK Compatibility Guide

+0

不理想,但它會 – CoderNinja

0

這不正是你想要的,但我用這個對於類似類型的問題:

if (&kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly == NULL) { 
    return NO; // must be on iOS7 
} 
相關問題