didFailWithError:错误域= kCLErrorDomain代码= 0“操作无法完成。 (kCLErrorDomain错误0.)“

我想获得当前的位置,但是我得到一个错误。

这是我的视图控制器的一个片段。

- (void)viewDidLoad { self.locationManager = [[CLLocationManager alloc] init]; [locationManager setDelegate:self]; [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters]; [locationManager startUpdatingLocation]; } - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations { // I would get the latest location here // but this method never gets called } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"didFailWithError: %@", error); } 

我期待的委托方法locationManager:didUpdateLocations:得到调用,而是,只有locationManager:didFailWithError:被调用,并打印这个:

 didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn't be completed. (kCLErrorDomain error 0.)" 

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

如果你这样做

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

这应该照顾这个问题它是设备/networking相关的不与应用程序有关。 它的烦人,尤其是如果你的应用程序是依赖于位置服务和设备是唯一的WiFi和人们给AppStore负面评价….对不起我在那里有点情绪化

如果您正在使用模拟器:

  1. 在Xcode中按command + shift + ,打开scheme编辑器
  2. select运行scheme
  3. 转到选项选项卡
  4. 选中✅ Allow Location Simulation
  5. 在下拉菜单中select一个默认位置

selectNone作为您的默认位置可能导致了问题。

只需忽略此错误并等待更多更新或不同的错误。

位置经理的文档说这个错误是暂时的。 这是让你知道,它没有立即检索一个位置,但它继续尝试。 “在这种情况下,你可以简单的忽略错误,等待一个新的事件。” 这是一个真正的头骨的方式来使用名为locationManager:didFailWithError:的方法locationManager:didFailWithError: – 谢谢苹果!

Apple Documentation

尝试重新启动模拟器(假设这就是你正在使用的)。

尝试了一切之后,这对我工作。

模拟器的重新启动没有为我工作。

我不得不通过"iOS Simulator" >> "Reset Content and Settings...

我在模拟器上得到这个错误。 点击debugging面板中的位置button,并设置一个位置为我解决了这个问题。 (确保button是蓝色的)

在这里输入图像说明

我也有同样的问题。 我相信可能的解释/修复在这个SOpost中有介绍 。

  1. 在模拟器中,进入设置>常规>重置>重置位置和隐私

  2. 退出模拟器并再次运行应用程序

改变模拟器上的“位置”为我工作。

debugging>位置>(我的select没有,而不是城市自行车骑)

假设您正在使用模拟器,您可以Debug -> Location并设置一个位置。

如果你没有select,你会有这个错误。

如果你正在使用一个custom location确保你有正确的方法,我已经倒过来,浪费了3个小时才明白…

我以前看过这个问题,有办法解决,但是只能运行一次。如果你想再次运行这个项目,每次都需要重复这个解决scheme。

1.在Xcode中,产品 – >scheme – >编辑scheme,然后取消“允许位置模拟器”。

2.到iOS模拟器并重置内容和设置。

3.再次对Xcode,重复第一步。

4.到iOS模拟器并重置。 然后它会工作。

像这样的问题可以通过设置位置“ Apple ”来解决。 至less它可以用于testing目的。

  1. 我重新设置了内容和设置。
  2. 从派生数据中删除数据。
  3. 重新启动Xcode和模拟器,为我工作。

从@Mem的答复和许多其他谢谢

对于返回的开发者:)只需从Simulator菜单中select“ Debug->Location->Freeway Drive ”。 如果仍然存在问题,请在模拟器菜单中执行“模拟器 – >重置内容和设置”之后再尝试。 这帮助了我一次同样的问题。 一些时间模拟器的位置设置为“ Custom location ”,由于它没有检测到任何东西。

尝试设备。 有时模拟器无法取得你的位置。

在模拟器中回家

首页 – >设置 – >隐私 – >位置 – >select应用程序,并select始终