AVCaptureSession's stopRunning – cuándo llamar

Estoy haciendo una aplicación que toma imágenes. Consiste en dos controlleres de vista conectados a través de un tabBarController . En uno de los viewControllers está la pantalla de la camera. Tiene una UIView que tiene el único propósito de mostrar los contenidos de AVCaptureVideoPreviewLayer .

He conectado las inputs y salidas, y tengo una transmisión en vivo de la vista de la camera que se muestra en mi UIView . Como tengo 2 controlleres de vista conectados por un tabBarController , me aseguro de llamar a stopRunning siempre que no esté en el viewController de mi camera, cuando el usuario se fija al otro viewController.

Actualmente, lo implementé de la siguiente manera:

 override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) session.startRunning() } override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated) session.stopRunning() } 

Cada vez que estoy en la pantalla de la camera con la session en ejecución, mi iPhone 5 se calienta, algo que esperaba, probablemente debido a la demanda de resources del object AVCaptureVideoPreviewLayer . Mi bash anterior es detener la session donde no sea necesario. Sin embargo, siento que no he cubierto todos los terrenos.

Si mi aplicación pasa a segundo plano, ¿continuará la session ? Utilicé algunas declaraciones println para rastrear mis methods de ciclo de vida viewController, y encontré que viewWillDisappear no se llama cuando la aplicación se retira al background.

¿Significa eso que mi session continúa funcionando y mi camera aún intenta proporcionar la alimentación? Sospecho que esto puede ser un problema, porque el teléfono todavía se siente caliente después de mucho time.