I want to get the current location, but instead I get an error.
This is a snippet of my view controller.
- (void)viewDidLoad {
self.locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray<CLLocation *> *)locations {
// I would get the latest location here
// but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error {
NSLog(@"didFailWithError: %@", error);
}
I'm expecting the delegate method locationManager:didUpdateLocations:
to get called, but instead, only locationManager:didFailWithError:
gets called, and prints this:
didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"
If you are using the simulator:
command + shift + ,
in Xcode to open the scheme editorAllow Location Simulation
Selecting None
as your Default Location may have caused the problem.
Check that you actually have a valid WiFi and 3G connection
...if you do, then:
Go to settings and reset your location services
This should take care of that issue. It is device/network related not app related. It's annoying especially if your app is dependent on location services and the device is WiFi only and people give negative ratings on the AppStore... Pardon me, I'm getting a bit emotional there.
Simply ignore this error and wait for more updates or a different error.
The docs for the location manager say that this error is temporary. It's letting you know that it failed to immediately retrieve a location, but it continues to try. "In such a situation, you can simply ignore the error and wait for a new event." Which is a really boneheaded way to use a method named locationManager:didFailWithError:
- Thanks Apple!
Apple Documentation
Try restarting the simulator (assuming that's what you're using).
After trying everything else this worked for me.
A restart of the simulator didn't work for me.
I had to clear everything via
"iOS Simulator" >> "Reset Content and Settings...
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With