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


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

为什么会发生此错误?


好问题-有时我会看到相同的错误。我相信这会在位置管理器无法获取当前位置时发生-例如,因为没有足够好的修复方法。但是,我有时看到它之后已经得到了很好的修复,再后来就这个错误弹出。
frankodwyer

1
对我来说,自定义位置小数点分隔符使用逗号而不是点。
electronicix384128

我遇到了同样的问题,将精度设置为kCLLocationAccuracyBest或某个较大的值,请忽略该错误并等待更多更新。
zaheer 2014年

Answers:


163

如果您已Scheme/Edit Scheme/Options/Allow Location Simulation检查但未设置默认位置,则会发生此错误。我敢肯定还有其他原因。


1
谢谢,但是我的问题是,如果我们设置默认位置会影响设备位置更新吗?
sKhan 2013年

@ShafKhan不要在评论中回答问题。提出新问题。
分心

9
如果您想知道SCHEME在哪里,请
单击

在方案编辑器中设置默认位置后,我仍然必须“重置内容和设置”才能使委托调用didUpdate而不是didFail。然后工作正常。
owenfi

这完全解决了我的问题!非常感谢你。
Ifelere Bolaji'9

42

更新

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

  1. 产品>方案>编辑方案
  2. 点击运行.app
  3. 选项标签
  4. 已检查核心位置>选择您的位置
  5. 按确定

除此之外,即使您未连接到wifi,也可以通过顶部菜单项在模拟器中设置位置,Debug>Location并使其永久不变,请执行上述步骤

ios模拟器中的位置错误


1
要使其永久,在Xcode:产品/方案/编辑计划... /运行/选项/核心-勾选“允许模拟位置”和设置“默认位置”到“无”
electronix384128

1
是的,它有效。非常感谢😃👍😄😃👌👏💃🙏💃💃。编辑我的问题以获取更多知识:)
Vaibhav Saran 2014年

33

我只是有这个问题。花了我一段时间找到解决方案,该解决方案与上一个发布者的答案大致无关。

必须启用机场(WiFi),iPhone / iPad模拟器中的CoreLocation才能正常工作。我通过以太网连接,因此CL在模拟器中什么也没做。在“网络设置”中打开“机场”,然后重试。如果您想继续通过无线进行有线连接,可以通过将“机场”拖到以太网下方来更改网络接口的顺序...


2
我遇到此错误,并且我的计算机已连接到通过WiFi的互联网。另外,如果我没记错的话,模拟器不会解析位置,而是始终使用Apple Office位置。使用MapKit框架时,显示蓝点,因此已设置位置。这没有多大意义。
Alex Angelico 2010年

1
我刚打开它,这不是我的网络列表中的第一个,一切都开始起作用了(Lion,XC 4.2)
David H

1
我遇到了同样的问题,但设备上的模拟器却没有!(iPhone 5S,iOS 8.1.3)。我正在使用MapKit和CoreLocation调试应用程序,并且两个框架始终返回相同的错误。直到我打开Wifi!谢谢:)
Vinzzz

13

从API文档:

CLError

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

类型定义枚举{kCLErrorLocationUnknown = 0,kCLErrorDenied,kCLErrorNetwork,kCLErrorHeadingFailure} CLError;

常数

kCLErrorLocationUnknown位置管理器当前无法获取位置值。在iPhone OS 2.0和更高版本中可用。在CLError.h中声明。

kCLErrorDenied用户拒绝了对定位服务的访问。在iPhone OS 2.0和更高版本中可用。在CLError.h中声明。

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

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

因此,这意味着无法确定位置。

我猜最可能的原因是位置管理器正在使用WiFi对位置进行三角测量,并且数据库未覆盖本地网络。如果他们去这里,显然可以由用户解决

但是,正如我指出的那样,在WiFi位置信息正常工作的位置中运行基于位置的程序时,偶尔也会将此视为暂时性错误。

最后,我想如果发生某种硬件故障,就有可能看到此错误。


4
他在问:KCLErrorDomain
electronicix384128

在此响应中没有引用kCLErrorDomain,这是OP所寻找的。
诺曼H

5

1)检查您是否确实有有效的WiFi和3G连接

如果你那么

2)转到设置并重置您的位置服务3)重置您的网络设置


我仍然不明白为什么在测试时没有wifi或iPad上没有3g时无法到达位置,为什么不使用GPS?那么设备上的用户如果没有互联网就无法获得位置?我还在离线模式应用程序上工作...
Renetik

据我所知,GPS不需要互联网或wifi连接。它只是一个接收器,如果它位于具有2或3个GPS卫星的可访问位置中,我们可以获得地理位置坐标。只有在以下情况下才需要担心互联网连接问题:对于任何在线活动(例如google地图),都需要GeoInformation,而google地图依靠互联网来显示未本地缓存的地图位置。专用导航应用程序(例如CoPilot)可将地图保留在机上。
Durai Amuthan.H 2013年

3

当位置管理器无法立即获取位置信息时,将引发此错误。我发现调用startUpdatingLocation方法时发生此错误。对我来说,这是在iPod上发生的,而在iPhone上却没有。这是有道理的,因为iPhone有更多方式(如蜂窝网络)来获取位置信息,并且能够快速估算位置,而iPod需要花费更多时间,从而导致iPod出现此错误。

因为,当引发此错误时,会调用locationManager:didFailWithError:委托方法,因此可以通过匹配传递给此方法的错误对象中的“ [错误域]”和“ [错误代码]”来处理条件语句中的这种特定情况。


3

我发现的确切原因是,在ios模拟器“调试设置”和xcode设置“编辑方案”中的位置模拟中发生冲突。请确保在其中任一位置设置默认用户位置并标记另一对“ 无”解决了这个问题,希望对您有所帮助。 InXcode:在此处输入图片说明

在iPhone / iPad模拟器中:在此处输入图片说明



1

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

从Xcode中选择菜单Debug / Simulate Location,将为您提供:

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

选择“将GPX文件添加到项目中...”,然后选择已创建的GPX文件。


0

转到Xcode项目>产品>方案>编辑方案>检查位置模拟>设置您的位置>并再次运行应用程序,希望它能工作!


0

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

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

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

您应该做的是找到所有出现的“ trkpt”元素,然后在您喜欢的text / xml编辑器中将其替换为“ wpt”。最终结果应如下所示:

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

希望这可以帮助!它肯定对我有帮助。


0

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

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

希望这可以帮助!它肯定对我有帮助。谢谢...



0

对于我而言,所有建议均无济于事。帮助的是从模拟器设备上卸载该应用程序,然后重新安装并允许其访问位置(在“设置”应用程序中)。


-1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.