У меня есть приложение, которое по замыслу должно быть активировано ОС после доставки события местоположения из системы, даже если приложение было прервано. Завершение может означать завершение системой или пользователем в многозадачном коммутаторе. Мой код делегата приложения приведен ниже, а делегат местоположения является расширением класса делегата приложения. Первое событие, которое генерируется системой после завершения приложения, доставляется в мое приложение и обрабатывается должным образом, но я не получаю никаких последующих событий. Нужно ли выполнить какой-либо код после получения события, чтобы перерегистрировать мое приложение для будущих обновлений?
var window: UIWindow?
var locationManager: CLLocationManager!
var notificationCenter: UNUserNotificationCenter?
var today:String? //Today's date format: YYYY-MM-DD
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if launchOptions?[UIApplicationLaunchOptionsKey.location] != nil {
self.locationManager = CLLocationManager()
self.locationManager.delegate = self
self.locationManager.requestAlwaysAuthorization()
self.locationManager.startMonitoringVisits()
self.locationManager.allowsBackgroundLocationUpdates = true
sendTestNotification()
} else {
print("normal launch")
}