如果设备不支持LED调光,我正在尝试关闭手电筒应用程序中的图像。
NSError* outError;
BOOL success = [device setTorchModeOnWithLevel:brightnessLevel error:&outError];
if(!success){
[self.lightDialIndicator setHidden: YES];
self.lightDial.image = [UIImage imageNamed:@"light_dial_disabled.png"];
}
但我的应用因以下错误而崩溃
[AVCaptureFigVideoDevice setTorchModeOnWithLevel:error:]: unrecognized selector sent to instance 0x73ad460
有什么更好的/可行的方法来检测设备何时不允许我使用
setTorchModeOnWithLevel
的想法? 最佳答案
首先,setTorchModeOnWithLevel
是AVCaptureDevice
类的属性。
其次,如果要测试一个类是否可以响应您正在调用的某个选择器,请使用以下命令:
BOOL isSuccessful = NO;
if ([device respondsToSelector:@selector(setTorchModeOnWithLevel:error:)]) {
NSError* outError;
isSuccessful = [device setTorchModeOnWithLevel:brightnessLevel error:&outError];
}
if (!isSuccessful) {
[self.lightDialIndicator setHidden: YES];
self.lightDial.image = [UIImage imageNamed:@"light_dial_disabled.png"];
}
您没有在示例中显示如何实例化
device
,但这适用于不确定其是否具有特定方法的任何类。