iPhone проверяет наличие класса AVCaptureSession

Я интегрировал библиотеку, которая использует AVCaptureSession для захвата фотографии с камеры. Поскольку AVCaptureSession доступен только на устройствах iOS 4, я хочу отключить это встроенный функционал для старых устройств.

Я знаю, что это должно быть сделано путем слабого связывания AVFoundation Framework и проверки существования функции. Слабое связывание легко сделать, но какую функцию я должен проверить на наличие здесь? AVCaptureSession — это класс, а не функция.

Есть ли какой-нибудь пример кода?


person adranale    schedule 17.09.2010    source источник


Ответы (1)


Я думаю, вы ищете NSClassFromString:

Class NSClassFromString ( NSString *aClassName );

Затем вы можете защитить использование этого класса примерно так:

if (NSClassFromString(@"AVCaptureSession")) {
    ...
}
person bosmacs    schedule 17.09.2010
comment
Это сработало! большое спасибо. Для заметки, мне пришлось также слабо связать другие библиотеки, такие как CoreVideo и UIKit. - person adranale; 20.09.2010
comment
objc_getClass более эффективен. - person rpetrich; 14.03.2011