AVAudioSession Swift

Estoy intentando escribir una aplicación rápida para iOS que grabe la voz de los usuarios. He escrito el siguiente código rápido pero no puede solicitar permissions de micrófono del usuario. Imprime concedido pero nunca graba audio y en el panel de configuration bajo privacidad no muestra la aplicación. ¿Cómo solicito permissions de grabación en swift?

var session: AVAudioSession = AVAudioSession.shanetworkingInstance() session.requestRecordPermission({(granted: Bool)-> Void in if granted { println(" granted") session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil) session.setActive(true, error: nil) self.recorder.record() }else{ println("not granted") } }) 

Desde iOS 7, necesita verificar si responde al selector requestRecordPermission:

He comprobado este código con un iPhone 5S con iOS 8 Beta y funciona perfectamente. Una vez que otorgue permiso, el sistema no lo solicitará nuevamente.

Vale la pena señalar que no pidió permiso cuando usó el Simulador .

Este es el código que he intentado y está funcionando:

 if (session.respondsToSelector("requestRecordPermission:")) { AVAudioSession.shanetworkingInstance().requestRecordPermission({(granted: Bool)-> Void in if granted { println("granted") session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil) session.setActive(true, error: nil) self.recorder () } else{ println("not granted") } }) } 

Para Swift 3 :

 let session = AVAudioSession.shanetworkingInstance() if (session.responds(to: #selector(AVAudioSession.requestRecordPermission(_:)))) { AVAudioSession.shanetworkingInstance().requestRecordPermission({(granted: Bool)-> Void in if granted { Linphone.manager.callUser(username: username) print("granted") do { try session.setCategory(AVAudioSessionCategoryPlayAndRecord) try session.setActive(true) } catch { print("Couldn't set Audio session category") } } else{ print("not granted") } }) }