Andrew Andrew - 4 months ago 48
Objective-C Question

didUpdateLocations not being called

I have my object set as the locationManager's delegate, and the didChangeAuthorizationStatus method is called, which does this:

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == CLAuthorizationStatus.AuthorizedWhenInUse {

I also have this method, which never gets called following this:

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
if locations.count == 0 {

//Do stuff

Any thoughts as to why this might not be being called? I suppose the object being deallocated is an option, but then it'd also be deallocated by the time it hit the authorizationStatus method.


This is way late for an answer, but I stumbled across this when I was having the same issue (didChangeAuthorizationStatus was being called but not didUpdateLocations). Well of course it's something not code related, but rather I was testing in the simulator which did not have a location set. Thus the location was never found, resulting in didUpdateLocations never being called.

To fix this... in the simulator go to Debug -> Location-> <choose location>.

EDIT It should also be noted that locationManager:didFailWithError: will run if the location is not set in the simulator, as you'd expect.