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负面评价….对不起我在那里有点情绪化
如果您正在使用模拟器:
- 在Xcode中按
command + shift + ,
打开scheme编辑器 - select运行scheme
- 转到选项选项卡
- 选中✅
Allow Location Simulation
- 在下拉菜单中select一个默认位置
selectNone
作为您的默认位置可能导致了问题。
只需忽略此错误并等待更多更新或不同的错误。
位置经理的文档说这个错误是暂时的。 这是让你知道,它没有立即检索一个位置,但它继续尝试。 “在这种情况下,你可以简单的忽略错误,等待一个新的事件。” 这是一个真正的头骨的方式来使用名为locationManager:didFailWithError:
的方法locationManager:didFailWithError:
– 谢谢苹果!
Apple Documentation
尝试重新启动模拟器(假设这就是你正在使用的)。
尝试了一切之后,这对我工作。
模拟器的重新启动没有为我工作。
我不得不通过
"iOS Simulator" >> "Reset Content and Settings...
我在模拟器上得到这个错误。 点击debugging面板中的位置button,并设置一个位置为我解决了这个问题。 (确保button是蓝色的)
我也有同样的问题。 我相信可能的解释/修复在这个SOpost中有介绍 。
在模拟器中,进入设置>常规>重置>重置位置和隐私
退出模拟器并再次运行应用程序
改变模拟器上的“位置”为我工作。
debugging>位置>(我的select没有,而不是城市自行车骑)
假设您正在使用模拟器,您可以Debug -> Location
并设置一个位置。
如果你没有select,你会有这个错误。
如果你正在使用一个custom location
确保你有正确的方法,我已经倒过来,浪费了3个小时才明白…
我以前看过这个问题,有办法解决,但是只能运行一次。如果你想再次运行这个项目,每次都需要重复这个解决scheme。
1.在Xcode中,产品 – >scheme – >编辑scheme,然后取消“允许位置模拟器”。
2.到iOS模拟器并重置内容和设置。
3.再次对Xcode,重复第一步。
4.到iOS模拟器并重置。 然后它会工作。
像这样的问题可以通过设置位置“ Apple
”来解决。 至less它可以用于testing目的。
- 我重新设置了内容和设置。
- 从派生数据中删除数据。
- 重新启动Xcode和模拟器,为我工作。
从@Mem的答复和许多其他谢谢
对于返回的开发者:)只需从Simulator菜单中select“ Debug->Location->Freeway Drive
”。 如果仍然存在问题,请在模拟器菜单中执行“模拟器 – >重置内容和设置”之后再尝试。 这帮助了我一次同样的问题。 一些时间模拟器的位置设置为“ Custom location
”,由于它没有检测到任何东西。
尝试设备。 有时模拟器无法取得你的位置。
在模拟器中回家
首页 – >设置 – >隐私 – >位置 – >select应用程序,并select始终