CoreLocation无法定位问题解决方案

     最近在使用CoreLocation方面的开发,需要获取一些定位信息,但是总是遇到各种问题。我下面来罗列一下这些问题,并总结一下各种解决方案。


CoreLocation无法定位问题解决方案_第1张图片



问题的根源大概是网络请求问题。毕竟苹果的服务是国外的。下面我来提出一些解决方案。

【方案1】

在iOS9之后iOS的网络请求都使用了https,所以需要在plist文件中加入如下两个字段。

NSAppTransportSecurity -> Dictionary类型

在NSAppTransportSecurity中新建NSAllowsArbitraryLoads  -> Boolean设置为YES。

只有这样才能进行网络请求。


【方案2】

对于定位服务,还需要加入如下两个字段,用于向用户请求定位授权。


【方案3】

如果你是用模拟器来进行测试的,定位往往是不准确的。但是如果不得不使用模拟器,又出现上述错误,则解决步骤如下:

CoreLocation无法定位问题解决方案_第2张图片.

把上面的Allow Location Simulation去掉勾选后,使模拟器Reset Content and Settings.也就是重置手机,然后再次勾选上面的Allow Location Simulation。重启模拟器后就可以定位了(有可能定位不准确)。


【方案4】

如果是在真机上遇到这类问题,可以进入设置->隐私->重启定位即可。



github主页:https://github.com/chenyufeng1991  。欢迎大家访问!









你可能感兴趣的:(ios,Objective-C,CoreLocation)