¿Cómo hago que mi aplicación ejecute un NSTimer en segundo plano?
Estoy haciendo una aplicación de referencia SOLO para fines de prueba. No tengo la intención de que esto vaya a la App Store.
Lo que necesito es que mi NSTimer continúe ejecutándose en segundo plano usando un UIBackgroundTaskIdentifier, guarde datos en un Core Data db y finalmente envíe los datos a un servidor (estoy usando Parse), después de un cierto intervalo de tiempo, por supuesto.
Así que, básicamente, no he encontrado ninguna pregunta que se aplique a mi caso específico. Configuré mi NSTimer así:
UIBackgroundTaskIdentifier bgTask;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
self.timer = [NSTimer scheduledTimerWithTimeInterval:self.localInterval target:self selector:@selector(updateCoreData:) userInfo:nil repeats:YES];
el método updateCoreData simplemente llama a la clase Core Data y realiza las inserciones necesarias.
He leído sobre VoIP y la parte musical, pero no sé exactamente cuál se aplicaría mejor a mi caso, ni cómo implementarlos.