Это потому, что вы не определили переменную NSError error
, адрес которой вы предоставляете, когда используете &error
.
Если вы определяете переменную через ...
NSError *error = nil;
... на линии раньше все должно быть хорошо.
В качестве пояснения, если вы посмотрите на подпись для AVCaptureDeviceInput deviceInputWithDevice: error: метод, вы увидите следующее:
+ (id)deviceInputWithDevice:(AVCaptureDevice *)device error:(NSError **)outError
Другими словами, этот метод ожидает, что адрес переменной-указателя NSError будет предоставлен в качестве параметра ourError
.