Hmm. It feels very scary to argue with an Apple engineer, but I have to make sure I'm not being unclear.
From Apple's doc:
CLLocationManager.LocationServicesEnabled():
Returns a Boolean value indicating whether location services are enabled on the device.
CLLocationManager.authorizationStatus
The current authorization status for the app
From the documentation, it seems pretty clear.
Please consider my short code snippet at the bottom.
If I go into settings/privacy and turn the "location services" global checkbox back and forth, the locationServicesEnabled method returns true/false
My authorisation status does not change, and when I turn the global setting back I still have the authorisation status I had before.
This is why the error message seems strange to me. Saying that I should look at the authorizationstatus-callback to know whether the user has enabled location services globally is to me confusing two different things?
EDIT: To be super clear, I have the didChangeAuthorizationStatus implemented since a long time. It is called when you click around on the "always"; "in use" etc. options for my app. It is not called when I turn location services on and off, which is the call that Xcode is warning me about.
Snippet:
CLLocationManager *man = [[CLLocationManager alloc] init];
//Returns a Boolean value indicating whether location services are enabled on the device.
BOOL enabled = man.locationServicesEnabled;
//The current authorization status for the app.
CLAuthorizationStatus stat = man.authorizationStatus;
[DialogUtils showBannerWithHeader:@"CHECK" message:[NSString stringWithFormat:@"Enabled? %i AuthStatus: %i", enabled, stat] type:MessageTypeINFO];