iOS: ¿Cómo vencer una notificación local con un desencadenante de región?

Tengo una notificación de geocerca local, configurada con el siguiente código:

func startMonitoring(annotation:MKAnnotation) { let region = CLCircularRegion(center: annotation.coordinate, radius: 10.0, identifier: "randomID") region.notifyOnExit = false let notification = UILocalNotification() notification.region = region notification.alertBody = "You got it!" notification.category = self.notificationCategory notification.soundName = "my_sound.wav" notification.userInfo = ["ID": "randomID"] UIApplication.shanetworkingApplication().scheduleLocalNotification(notification) } 

Esto funciona muy bien, pero el usuario tiene que llegar al área dentro de un cierto límite de time para que la acción de la notificación esté disponible. ¿Cómo puedo hacer que la notificación NO se dispare si el límite de time ha pasado?

Actualmente solo tengo la autorización "WhenInUse" para la location del usuario y prefiero mantenerla así.

Sería mejor monitorear manualmente CLCircularRegion usando CLLocationManager, y cuando se le notifique a su aplicación que el usuario ingresó a la región, verifique si está en el límite de time y publique su UILocalNotification manualmente.

Consulte la sección Using Regions to Monitor Boundary Crossings aquí: https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html

Puede configurar la setminimumbackgroundfetchinterval background con setminimumbackgroundfetchinterval y cancelar la notificación progtwigda si va a caducar.

No es 100% confiable porque no puedes controlar la hora exacta, pero es mejor que nada.