locationServicesEnabled always return YES

When you use

[CLLocationManager locationServicesEnabled]

then you inspect if locationServices are enabled in whole system. So when you go to Settings -> Location Services and you see that first switch. That method returns state of that state and is not in relation with your app.

If you need to know if your app has access to location services use @Pascalius answer.


Remember that [locationManager locationServicesEnabled] is deprecated since iOS 4.0. Use the Class Method [CLLocationManager locationServicesEnabled] instead.

The App Specific Button can be retrieved by

[CLLocationManager authorizationStatus]