I am trying to get the user's current location using the following code, but it doesn't work. I have added both NSLocationWhenInUseUsageDescription key and NSLocationAlwaysUsageDescription key to my Info.plist file.
Below is the code
var locationManager = CLLocationManager();
override func viewDidLoad() {
super.viewDidLoad()
startReceivingLocationChanges();
}
func startReceivingLocationChanges() {
let authorizationStatus = CLLocationManager.authorizationStatus()
if authorizationStatus != .authorizedAlways {
// User has not authorized access to location information.
print("not authorized");
return
}
if !CLLocationManager.locationServicesEnabled() {
print("not enabled");
return
}
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 100.0 // In meters.
locationManager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let lastLocation = locations.last!
print(lastLocation)
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
print(error);
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
print("inside didChangeAuthorization ");
}
i have read through the apple documents and above is the code that apple suggests. What am i missing here ? Any kind of help is really appreciated. Thanks
EDIT
for some reason requestAlwaysAuthorization() is not available. see the screenshot below

for some reason requestAlwaysAuthorization() is not available.
requestAlwaysAuthorization() isn't available because you're working in macOS, and the documentation shows that that method is only available in iOS and watchOS. See the list of SDK's on the right side of the page, near the top:
Just make sure the location manager is authorized to find user's location. You should call locationManager.requestAlwaysAuthorization() before calling for location updates.
Also check that your simulator debugging simulates the user location.
来源:https://stackoverflow.com/questions/45554220/how-to-get-user-location-macos
