setTorchModeOnWithLevel

setTorchModeOnWithLevel

如果设备不支持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的想法?

最佳答案

首先,setTorchModeOnWithLevelAVCaptureDevice类的属性。

其次,如果要测试一个类是否可以响应您正在调用的某个选择器,请使用以下命令:

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,但这适用于不确定其是否具有特定方法的任何类。

10-08 11:28