【问题标题】:Location Manager Error : (KCLErrorDomain error 0)位置管理器错误:(KCLErrorDomain 错误 0)
【发布时间】:2010-11-27 09:43:47
【问题描述】:
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)

为什么会出现这个错误?

【问题讨论】:

  • 好问题 - 我有时会看到同样的错误。我相信当位置管理器无法获取当前位置时会发生这种情况 - 例如因为没有足够好的修复程序。但是,我有时看到它已经得到了很好的修复,然后这个错误就会弹出。
  • 对我来说,我使用逗号而不是点作为自定义位置小数分隔符。
  • 我遇到了同样的问题,请将准确度设置为 kCLLocationAccuracyBest 或某个较大的值,忽略错误并等待更多更新。

标签: iphone geolocation


【解决方案1】:

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

【讨论】:

  • 谢谢,但我的问题是如果我们设置默认位置会影响设备位置更新吗?
  • @ShafKhan 不要回答 cmets 中的问题。将其作为一个新问题提出。
  • 如果您想知道 SCHEME 在哪里,请点击此链接developer.apple.com/library/mac/recipes/…
  • 在方案编辑器中设置默认位置后,我仍然必须“重置内容和设置”才能让代理调用 didUpdate 而不是 didFail。然后效果很好。
  • 这完全解决了我的问题!非常感谢。
【解决方案2】:

更新

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

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

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

【讨论】:

  • 要使其永久化,在 Xcode 中:Product/Scheme/Edit Scheme .../Run/Options/Core Location - 选中“Allow Location Simulation”并将“Default Location”设置为“None”
  • 是的,它有效。非常感谢??????????。编辑我的问题以获得更多知识:)
【解决方案3】:

我刚遇到这个问题。花了我一段时间才找到解决方案,这与之前的发布者的答案只是松散相关。

机场 (WiFi) 必须开启,iPhone/iPad 模拟器中的 CoreLocation 才能工作。我是通过以太网连接的,所以 CL 在模拟器中没有做任何事情。在您的网络设置中打开机场,然后重试。如果您想继续使用有线连接而不是无线连接,可以通过将 Airport 拖到以太网下方来更改网络接口的顺序...

【讨论】:

  • 我有这个错误,我的电脑通过 WiFi 连接到互联网。另外,如果我没记错的话,模拟器不会解析位置,总是使用 Apple Office 位置。使用 MapKit 框架时,蓝点显示,因此设置了位置。这没有多大意义。
  • 我刚打开它,它不是我网络列表中的第一个,一切都开始工作了(Lion,XC 4.2)
  • 我有同样的问题,但不是在模拟器上,在设备上! (iPhone 5S,iOS 8.1.3)。我正在使用 MapKit 和 CoreLocation 调试应用程序,两个框架总是返回相同的错误。直到我打开Wifi!谢谢:)
【解决方案4】:

来自 API 文档:

CL错误

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

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 位置信息正常工作的位置运行基于位置的程序时,我偶尔也会将此视为暂时性错误。

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

【讨论】:

  • 他在问:KCLErrorDomain
  • 在此响应中没有对 kCLErrorDomain 的引用,这是 OP 正在寻找的。​​span>
【解决方案5】:

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

如果你这样做了

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

【讨论】:

  • 我还是不明白为什么我在 iPad 上测试时没有 wifi 或 3g 就无法定位,为什么不使用 GPS?所以设备上的用户在没有互联网的情况下无法获取位置?我也在开发离线模式应用程序...
  • 据我所知,GPS 不需要互联网或 wifi 连接。它只是一个接收器,如果它位于有 2 或 3 颗 GPS 卫星的可访问位置,我们可以获得地理位置坐标。我们仅当任何在线活动(例如谷歌地图)需要地理信息时才需要担心互联网连接,该活动依赖互联网来显示未本地缓存的地图位置。CoPilot 等专用导航应用程序将地图保留在机上。
【解决方案6】:

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

Debug > Location > ✓ Apple

【讨论】:

    【解决方案7】:

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

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

    【讨论】:

      【解决方案8】:

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

      在 iphone/ipad 模拟器中:

      【讨论】:

        【解决方案9】:

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

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

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

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

        【讨论】:

          【解决方案10】:

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

          【讨论】:

            【解决方案11】:

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

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

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

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

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

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

            【讨论】:

              【解决方案12】:

              这个错误是在你运行你的程序时出现的,但是你在运行程序后模拟了位置。

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

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

              【讨论】:

                【解决方案13】:

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

                【讨论】:

                  【解决方案14】:

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

                  【讨论】:

                    【解决方案15】:

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

                    【讨论】:

                      猜你喜欢
                      • 2016-10-22
                      • 2016-07-23
                      • 2017-01-22
                      • 2016-01-26
                      • 2016-11-18
                      • 2015-06-01
                      • 2015-10-29
                      • 2015-12-09
                      • 2014-07-18
                      相关资源
                      最近更新 更多