Cómo recibir notifications de Darwin cuando la aplicación está en segundo plano

La aplicación está configurada para recibir actualizaciones de location mientras está en segundo plano para mantener la aplicación activa y las actualizaciones se reciben con éxito cuando la aplicación está en segundo plano.

Las notifications de Darwin también se han configurado y se reciben solo cuando la aplicación es la aplicación actual en primer plano. Tan pronto como la aplicación se pone en segundo plano, deja de recibir las notifications de Darwin.

¿Alguna idea sobre cómo recibir notifications de Darwin mientras la aplicación está en segundo plano?

Fragmentos de código a continuación.

Construyendo una aplicación en Swift2

en appdeligate

let callback: @convention(c) (CFNotificationCenter!, UnsafeMutablePointer<Void>, CFString!, UnsafePointer<Void>, CFDictionary!) -> Void = { (center, observer, name, object, userInfo) in //Execute callback code } let exCb: CFNotificationCallback = unsafeBitCast(callback, CFNotificationCallback.self) CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),nil ,exCb,"com.apple.springboard.hasBlankedScreen" as CFString,nil ,CFNotificationSuspensionBehavior.DeliverImmediately) 

en viewcontroller

  locationManager = CLLocationManager() locationManager.delegate = self locationManager.desinetworkingAccuracy = kCLLocationAccuracyBest //locationManager.requestWhenInUseAuthorization() locationManager.requestAlwaysAuthorization() locationManager.startUpdatingLocation() 

Asegúrate de haber activado la capacidad de Location updates en los Background Modes .

Capacidad de actualizaciones de ubicación

Esto permitirá que su aplicación reciba cambios de location en segundo plano y continúe con su lógica. Una gran biblioteca para este tipo de funcionalidad es INTULocationManager .