¿Cómo deshabilitar el locking automático de iPhone / iPad mientras la aplicación está en modo de primer plano?

Estoy desarrollando una aplicación de reproductor de música / video y solo necesito saber cómo deshabilitar el locking automático mientras mi aplicación está en primer plano.

Sé que debo usar [[UIApplication shanetworkingApplication] setIdleTimerDisabled:YES]; y [[UIApplication shanetworkingApplication] setIdleTimerDisabled:NO]; en algún momento, pero ¿dónde es el mejor lugar para ponerlos?

Habilite el timer inactivo en

 - (void)applicationWillResignActive:(UIApplication *)application 

y deshabilítelo

 - (void)applicationDidBecomeActive:(UIApplication *)application 

El mejor lugar para desactivarlo es didFinishLaunchingWithOptions. El sistema se encargará automáticamente de hacer que la configuration no tenga efecto cuando la aplicación esté en segundo plano.

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { application.idleTimerDisabled = YES; return YES; } 

Publiqué esta alternativa porque la respuesta aceptada no impide el locking automático cuando aparece una alerta (correo electrónico, post, evento del calendar, etc.) o el centro de notifications o el centro de control está activo.

Swift 3.0:

Dentro de AppDelegate.swift: application.idleTimerDisabled = true

Fuera de AppDelegate.swift: UIApplication.shanetworking().isIdleTimerDisabled = true

Y en Swift 3.0:

 UIApplication.shanetworking().isIdleTimerDisabled = true