setTorchModeOnWithLevel no funciona

Estoy usando este método para encender la antorcha:

- (void)checkTorch { for (AVCaptureDevice *device in [AVCaptureDevice devices]) { if ([device position] != AVCaptureDevicePositionBack) { NSLog(@"This is the front camera"); continue; // go to next device } NSLog(@"This is the back camera"); if([device hasTorch] == NO){ NSLog(@"this camera has no torch..."); continue; // go to next device } NSLog(@"The camera has a torch"); if([device isTorchAvailable] == NO){ NSLog(@"The torch is not available..."); continue; // go to next device } NSLog(@"The torch is available"); NSError *outError; NSError *lockError; [device lockForConfiguration:&lockError]; BOOL success = [device setTorchModeOnWithLevel:0.2 error:&outError]; [device unlockForConfiguration]; if (lockError) NSLog(@"Error locking: %@", lockError.localizedDescription); NSLog(@"Torch Level: %0.0f", device.torchLevel); if(!success){ NSLog(@"Could not activate torch: %@", [outError localizedDescription]); continue; // go to next device } NSLog(@"The torch is now active!"); } } 

Lo que me da esta salida (que es correcta):

 2014-06-10 08:52:30.677 [291:17894] This is the back camera 2014-06-10 08:52:30.679 [291:17894] The camera has a torch 2014-06-10 08:52:30.679 [291:17894] The torch is available 2014-06-10 08:52:30.682 [291:17894] Torch Level: 0 2014-06-10 08:52:30.683 [291:17894] The torch is now active! 2014-06-10 08:52:30.683 [291:17894] This is the front camera 2014-06-10 08:52:30.684 [291:17894] This is the front camera 

Sin embargo, la antorcha nunca se enciende.

– Estoy ejecutando el código beta, sin embargo, las últimas diferencias de API no muestran ningún cambio en este método o methods relacionados, así que no estoy seguro de por qué no estaría funcionando. He preguntado en los foros de Apple Dev sin ayuda.

Actualmente, con éxito, utilizo el siguiente código para controlar la antorcha en iPhone 5, 6 y 6 Plus:

 - (void)setTorchToLevel:(float)torchLevel { AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; if ([device hasTorch]) { [device lockForConfiguration:nil]; if (torchLevel <= 0.0) { [device setTorchMode:AVCaptureTorchModeOff]; } else { if (torchLevel >= 1.0) torchLevel = AVCaptureMaxAvailableTorchLevel; BOOL success = [device setTorchModeOnWithLevel:torchLevel error:nil]; } [device unlockForConfiguration]; } }