我想获取当前位置,但我收到错误。
这是我的视图控制器的片段。
- (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.)"
答案 0 :(得分:129)
如果您使用的是模拟器:
command + shift + ,
打开方案编辑器Allow Location Simulation
选择None
作为默认位置可能会导致问题。
答案 1 :(得分:102)
检查您确实拥有有效的WiFi和3G连接
...如果你这样做,那么:
转到设置并重置您的位置服务
这应该解决这个问题。它与设备/网络相关而非应用相关。这很烦人,特别是如果你的应用程序依赖于位置服务而且设备只是WiFi而且人们在AppStore上给予负面评价......对不起,我在那里有点情绪化。
答案 2 :(得分:21)
只需忽略此错误并等待更多更新或其他错误。
位置管理员的文档说这个错误是暂时的。它让你知道它无法立即检索一个位置,但它继续尝试。 &#34;在这种情况下,您可以简单地忽略错误并等待新事件。&#34;使用名为locationManager:didFailWithError:
的方法是一种非常愚蠢的方法 - 感谢Apple!
答案 3 :(得分:18)
尝试重新启动模拟器(假设您正在使用它)。
尝试了其他一切后,这对我有用。
答案 4 :(得分:14)
重新启动模拟器对我不起作用。
我必须通过
"iOS Simulator" >> "Reset Content and Settings...
清除所有内容。
答案 5 :(得分:9)
我在模拟器上收到此错误。单击调试面板中的位置按钮并设置位置可以解决问题。 (确保按钮为蓝色)
答案 6 :(得分:7)
我有同样的问题。我相信可能的解释/修复已涵盖in this SO post。
答案 7 :(得分:5)
更改模拟器上的“位置”对我有用。
调试&gt;位置&gt; (我被检查无,而不是城市自行车骑 e.g。)
答案 8 :(得分:5)
在模拟器中,转到设置&gt;一般&gt;重置&gt;重置位置&amp;隐私
- 醇>
退出模拟器并再次运行应用程序
答案 9 :(得分:3)
假设您正在使用模拟器,您可以Debug -> Location
并设置位置。
如果您没有选择,则会出现此错误。
答案 10 :(得分:2)
如果你使用的是custom location
,请确保你有正确的方式,并且在我意识到之前3小时就将它反转并浪费了......
答案 11 :(得分:2)
之前我已经看到了问题,有办法解决它,但它只能工作一次。如果你想再次运行项目,你需要每次重复解决方案。
1.在Xcode中,产品 - &gt;方案 - &gt;编辑方案,然后取消&#34;允许位置模拟器&#34;。
2.到iOS模拟器并重置内容和设置。
3.再与Xcode重复,重复第一步。
4.到iOS模拟器并重置。然后它会工作。
答案 12 :(得分:1)
可以通过将位置设置为“Apple
”来解决此类问题。至少它可以用于测试目的。
答案 13 :(得分:1)
- 我已重置内容和设置。
- 从派生数据中删除数据。
- 重新启动Xcode和Simulator并为我工作。
醇>
来自@Mem和其他许多人的答案谢谢
答案 14 :(得分:1)
对于返回的开发人员:)只需从模拟器菜单中选择“Debug->Location->Freeway Drive
”即可。如果仍有问题,请在模拟器菜单中执行“模拟器 - >重置内容和设置”后尝试。这对我有同样的问题帮了我一次。某些时间模拟器位置设置为“Custom location
”,因为它没有检测到任何内容。
答案 15 :(得分:1)
答案 16 :(得分:0)
尝试使用设备。有时模拟器无法占据您的位置。
答案 17 :(得分:0)
在模拟器中回家
主页 - &gt;设置 - &gt;隐私权 - &gt;地点 - &gt;选择应用并始终选择
答案 18 :(得分:0)
在添加权限时隐私-使用中的位置info.plist中的使用情况说明已为我解决