位置pipe理器错误:(KCLErrorDomain错误0)

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

为什么会发生这种错误?

如果您已经选中了Scheme/Edit Scheme/Options/Allow Location Simulation但没有设置默认位置,则会发生此错误。 我相信也有其他的原因。

UPDATE

感谢Ben Marten您可以使用XCode中的这些步骤使其永久化:

  1. 产品>计划>编辑计划
  2. 单击运行.app
  3. 选项选项卡
  4. 已经选中核心位置>select你的位置
  5. 按OK

除此之外,即使您没有连接到wifi,也可以通过顶层菜单项“ Debug>Location位置”在模拟器中设置一个位置,并使其永久按照上述步骤

在iOS模拟器中的位置错误

我刚刚有这个问题。 花了我一段时间才find解决scheme,这个解决scheme只和上一张海报的答案松散相关。

机场 (WiFi) 必须在iPhone / iPad模拟器的CoreLocation 运行。 我通过以太网连接,所以CL在模拟器中没有做任何事情。 在您的networking设置中打开机场,然后重试。 如果要继续通过无线方式连接有线连接,可以通过在以太网下拖动机场来更改networking接口的顺序…

从API文档:

CLError

位置pipe理器对象返回的错误代码。

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

常量

kCLErrorLocationUnknown位置pipe理器现在无法获取位置值。可用于iPhone OS 2.0及更高版本。 在CLError.h中声明。

kCLErrorDenied访问位置服务被用户拒绝。 在iPhone OS 2.0及更高版本中可用。 在CLError.h中声明。

kCLErrorNetworknetworking不可用或发生networking错误。 在iPhone OS 3.0b和更高版本中可用。 在CLError.h中声明。

kCLErrorHeadingFailure标题无法确定。 可在iPhone OS 3.0及更高版本中使用。 在CLError.h中声明。

所以这意味着位置无法确定。

我猜想最可能的原因是位置pipe理器正在使用WiFi来对位置进行三angular测量,而数据库不包括本地networking。 这显然可以由用户如果他们去这里修复。

但是,正如我注意到,我也偶尔看到,这是一个短暂的错误时运行一个基于位置的程序在WiFi位置的东西正常工作的位置。

最后,我猜如果有某种硬件故障,可以看到这个错误。

1)检查你确实有一个有效的WiFi和3G连接

如果你这样做

2)进入设置并重置您的位置服务3)重置您的networking设置

当位置pipe理器无法立即获取位置信息时,会引发此错误。 我发现这个错误发生在startUpdatingLocation方法被调用时。 对我来说,这是发生在iPod上,而不是iPhone上。 这是有道理的,因为,iPhone有更多的方式(如蜂窝networking)来获取位置信息,并能够快速估计位置,而iPod需要更多的时间,这导致这个错误在iPod上提出。

因为在抛出这个错误的时候locationManager:didFailWithError:调用了委托方法,所以可以通过匹配传递给这个方法的错误对象中的“[error domain]”和“[error code]”在条件语句中处理这个特定的情况。

我发现的确切原因是在ios仿真器“debugging设置”和xcode设置“编辑scheme”中的位置模拟中发生冲突。确保在此设置您的默认用户位置和标记另一个没有解决了问题,希望这可以帮助肯定。 InXcode: 在这里输入图像说明

在iphone / ipad模拟器中: 在这里输入图像说明

您可以将自己的位置列表添加到Xcode,以testing您的应用程序。

从Xcode中select菜单debugging/模拟位置,你会得到:

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

select“添加GPX文件到项目…”并select您创build的GPX文件。

运行程序时发生此错误,但在运行程序后模拟位置。

我得到一个方法:退出你的模拟器并重新启动它,然后在运行程序之前设置你的模拟器的位置,它适用于我。

希望这可以帮助! 这当然帮助了我。 谢谢…

如果你在模拟器中有这个,那么请遵循

 Debug > Location > ✓ Apple 

仿真器指令

转到Xcode项目>产品>计划>编辑scheme> chek位置模拟>设置您的位置>并再次运行应用程序希望它会起作用!

感谢这篇文章( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ )我得到了一个提示,看看我的自定义GPX文件上的数据,发现问题。

您可能从不同来源获得的某些GPX文件可能具有以下指示指定path中不同坐标的元素。 这不适用于Xcode的位置模拟。

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

你应该做的是find所有出现的“trkpt”元素,并用你最喜欢的文本/ XML编辑器中的“wpt”replace它。 最终的结果应该如下:

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

希望这可以帮助! 这当然帮助了我。

所有这一切都没有为我工作..什么对我来说是: – 设置从模拟器的位置为none然后将其更改回custom位置,而应用程序正在运行。

所有的build议对我来说都没有帮助。 什么帮助是从模拟器设备卸载应用程序,重新安装它,并允许它访问的位置(在设置应用程序)。

如果您在设备上获取此信息,则可能是您没有要求或用户拒绝了收集位置的权限。