UIApplicationBackgroundRefreshStatusDidChangeNotification-Verwendung ohne entsprechende Delegatmethode

Ich fühle, dassUIApplicationBackgroundRefreshStatusDidChangeNotification Die in iOS 7 eingeführte Methode ist ohne Unterstützung der UIApplication-Delegate-Methode von geringem Nutzen. Weil die App nicht benachrichtigt wird, wenn der Benutzer den Hintergrundaktualisierungsstatus für meine App aktiviert hat.

Dies ist mein Benachrichtigungs-Handler ...

- (void)applicationDidChangeBackgroundRefreshStatus:(NSNotification *)notification
{
    NSLog(@"applicationDidChangeBackgroundRefreshStatus with notification info = %@ and refresh status = %d", notification, UIApplication.sharedApplication.backgroundRefreshStatus);

    if (UIApplication.sharedApplication.backgroundRefreshStatus == UIBackgroundRefreshStatusAvailable) {
//        if ([CLLocationManager locationServicesEnabled]) {
            [self.locationManager startUpdatingLocation];
//        }
    }
}

Wie oben möchte ich die Aktualisierung des Core-Speicherorts starten, wenn UIBackgroundRegreshStatus erstellt wurdeVerfügbar durch AppEinstellungen> Allgemein> Hintergrund-App aktualisieren. Ich denke, es hätte eine geeignete Delegate-Methode in UIApplicationDelegate geben müssen, um die App über diese Änderung zu informieren, damit die App alles wiederherstellen kann, was sie benötigt.

Entweder fehlt mir etwas (bereits vorhandene API) oder Apple SDK-Ingenieure haben andere / eingeschränkte Absichten bezüglich dieser Benachrichtigungsverwendung. Bitte um Rat.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage