尝试执行方法调用时使用未声明的标识符错误

时间:2014-02-17 22:59:35

标签: ios objective-c undeclared-identifier

我正在使用AV Foundation框架。我正在尝试为“AVCaptureDeviceInput”对象执行“deviceInputWithDevice”的方法调用。

问题是方法调用包含一个名为“error”的“error”参数,我在xcode中不断收到此警告:使用undelcared标识符'error'

我的所有AV Foundation代码都位于View Controller的ViewDidLoad方法实现中。这是:

    AVCaptureSession *session = [[AVCaptureSession alloc]init];

    session.sessionPreset = AVCaptureSessionPresetHigh;

    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:error];

    [session addInput:input];

我无法弄清楚为什么它一直向我提供“错误”参数的未声明标识符警告。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您必须声明您尝试使用的error变量:

NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];

请注意,在将&传递给方法时,您需要error之前的if (input) { // it succeeded, do something } else { NSLog(@"Error trying to call deviceInputWithDevice: %@", error); } 。当然你应该检查一下:

{{1}}