Location Manager Error : (KCLErrorDomain error 0)

Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)

Why does this error occur?

80485 次浏览

From the API docs:

CLError

Error codes returned by the location manager object.

typedef enum { kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure } CLError;

Constants

kCLErrorLocationUnknown The location manager was unable to obtain a location value right now.Available in iPhone OS 2.0 and later. Declared in CLError.h.

kCLErrorDenied Access to the location service was denied by the user. Available in iPhone OS 2.0 and later. Declared in CLError.h.

kCLErrorNetwork The network was unavailable or a network error occurred. Available in iPhone OS 3.0b and later. Declared in CLError.h.

kCLErrorHeadingFailure The heading could not be determined. Available in iPhone OS 3.0 and later. Declared in CLError.h.

So this means the location could not be determined.

I would guess the most likely cause is that the location manager is using WiFi to triangulate the location, and the database doesn't cover the local networks. That apparently can be fixed by the user if they go here.

However as I noted I have also seen this occasionally as a transient error when running a location based program in a location where the WiFi location stuff normally works.

Lastly I guess it is possible to see this error if there is some kind of hardware failure.

I just had this problem. Took me a while to find the solution, which is only loosely related to the previous poster's answer.

Airport (WiFi) must be on for CoreLocation in the iPhone/iPad Simulator to work. I was connected via Ethernet so CL didn't do anything in the Simulator. Turn on Airport in your Network Settings and try again. You can change the order of your network interfaces by dragging Airport below Ethernet if you want to continue favoring your wired connection over your wireless...

This error is thrown when Location Manager is unable to get location information immediately. I found that this error was occurring when startUpdatingLocation method was called. For me, this was happening on iPod but not on iPhone. That makes sense, since, iPhone has more ways (like cellular network) to get location information and is able get a quick estimate on the location whereas iPod takes more time which caused this error to be raised on iPod.

Since, when this error is thrown locationManager:didFailWithError: delegate method is called, one can handle this specific case in a conditional statement by matching "[error domain]" and "[error code]" from the error object passed to this method.

1) check that you actually have a valid WiFi and 3G connection

if you do then

2) go to settings and reset your location services 3) reset your network settings

This error occurs if you have Scheme/Edit Scheme/Options/Allow Location Simulation checked but don't have a default location set. I'm sure there are other causes as well though.

UPDATE

THANKS TO Ben Marten You can make it permanent using these steps in XCode:

  1. Product > Scheme > Edit Scheme
  2. Click Run .app
  3. Option tab
  4. Already checked Core Location > select your location
  5. Press OK

Besides that, even if you are not connected to wifi, you can set a location in simulator through top menu items Debug>Location and to make it permanent follow steps above

location error in ios simulator

You can add your own list of locations to Xcode to test your applications with.

From within Xcode select the menu Debug/Simulate Location and you'll be offered:

a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."

Select "Add GPX File to Project..." and select the GPX file you've created.

The exact reason what I have found is there is a conflict occuring in the location simulation in both the ios simulator “Debug settings” and in the xcode settings “Edit schemes”.Ensure to set you default user location in any one of this and mark the other to None solved the problem hope this might help for sure. InXcode:enter image description here

In iphone/ipad simulator:enter image description here

Go to Xcode project >product>scheme>edit scheme>chek location simulation>set your location> and run app again Hope it will works !

Thanks to this article (https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/) I got a hint to look at the data on my custom GPX file and there found the issue.

Some GPX files you might get from different sources might have the following elements indicating the different coordinates in specified path. This wont work with Xcode's Location Simulation.

<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>

What you should do is find all occurrences of the "trkpt" element and replace it with "wpt" in your favorite text/xml editor. The end result should be something as follows:

<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>

Hope this helps! It certainly helped me.

This error occur while you run your program ,but you simulate location after you run the programe.

I get a method :quit your simulator and restart it ,then set your simulator location before you run the programe,and it works for me .

Hope this helps! It certainly helped me. thanks...

If you are getting this on the device, chances are you did not ask for or the user denied the permission to gather the location.

all of this didn't work for me.. what worked for me is :- set the location from the simulator to none then change it back to custom location while the app is running.

If you got this in Emulator then do following

Debug > Location > ✓ Apple

emulator instruction

All of the suggestions didn't help in my case. What helped was to uninstall the app from the simulator device, reinstall it and allow it to access the location (in the settings app).