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

时间:2009-09-11 05:31:41

标签: iphone geolocation

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

为什么会出现此错误?

15 个答案:

答案 0 :(得分:152)

如果您已选中Scheme/Edit Scheme/Options/Allow Location Simulation但未设置默认位置,则会出现此错误。我确信还有其他原因。

答案 1 :(得分:42)

<强>更新

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

  
      
  1. 产品&gt;方案&gt;编辑方案
  2.   
  3. 点击运行.app
  4.   
  5. 选项标签
  6.   
  7. 已检查核心位置&gt;选择您的位置
  8.   
  9. 按OK
  10.   

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

location error in ios simulator

答案 2 :(得分:33)

我刚遇到这个问题。花了一些时间才找到解决方案,这与之前海报的答案松散相关。

机场(WiFi)必须才能使iPhone / iPad模拟器中的CoreLocation正常工作。我通过以太网连接,因此CL在模拟器中没有做任何事情。在您的网络设置中打开机场,然后重试。如果您想通过无线继续支持有线连接,可以通过拖动以太网下的机场来更改网络接口的顺序...

答案 3 :(得分:12)

来自API文档:

  

CLError

     

该位置返回的错误代码   经理对象。

     

typedef enum {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来对位置进行三角测量,而数据库不会覆盖本地网络。如果他们转到here,这显然可以由用户修复。

然而,正如我所说,在WiFi位置通常正常工作的位置运行基于位置的程序时,我偶尔也会看到这是一个瞬态错误。

最后,我想如果出现某种硬件故障,可能会看到此错误。

答案 4 :(得分:5)

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

如果你这样做

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

答案 5 :(得分:3)

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

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

答案 6 :(得分:2)

我发现的确切原因是在ios模拟器“调试设置”和xcode设置“编辑方案”中的位置模拟中都存在冲突。确保在任何一个中设置默认用户位置这个并将另一个标记为解决了问题,希望这可能有所帮助。 的 InXcode: enter image description here

在iphone / ipad模拟器中: enter image description here

答案 7 :(得分:1)

您可以将自己的位置列表添加到Xcode以使用。

测试您的应用程序

从Xcode中选择菜单Debug / Simulate Location,您将获得:

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

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

答案 8 :(得分:1)

运行程序时会出现此错误,但在运行程序后会模拟位置。

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

希望这有帮助!它当然帮助了我。 感谢...

答案 9 :(得分:1)

如果您在模拟器中有这个,那么请执行以下操作

Debug > Location > ✓ Apple

emulator instruction

答案 10 :(得分:0)

转到Xcode项目&gt;产品&gt;方案&gt;编辑方案&gt; chek位置模拟&gt;设置您的位置&gt;并再次运行app希望它能运作!

答案 11 :(得分: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>

希望这有帮助!它确实帮助了我。

答案 12 :(得分:0)

所有这些对我来说都不起作用..对我有用的是: - 将模拟器中的位置设置为none,然后在应用运行时将其更改回custom位置。

答案 13 :(得分:0)

在我的案例中,所有建议都没有帮助。有助于从模拟器设备卸载应用程序,重新安装它并允许它访问该位置(在设置应用程序中)。

答案 14 :(得分:-1)

如果您在设备上收到此信息,则可能是您没有要求或用户拒绝收集该位置的许可。