美文网首页首页投稿(暂停使用,暂停投稿)程序员iOS学习开发
iOS8后定位代理方法不执行解决和定位地址一直是同一个位置

iOS8后定位代理方法不执行解决和定位地址一直是同一个位置

作者: 知忧丶 | 来源:发表于2016-05-27 10:31 被阅读679次

    iOS8后定位代理方法不执行解决

    这个主要是iOS8之后苹果规定定位必须获取用户同意才可以。 如果定位时开发者不去配置相关请求信息 ,app是无法执行定位的,那怎么会执行定位代理呢。

    解决方案步骤

    1.在Info.plist定位时所需的配置。

    // 只需要添加一个即可,string必须写明白否则会上架被拒
    <key>NSLocationAlwaysUsageDescription</key>
    <string>请求定位时的说明</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>请求定位时的说明</string>
    

    2.并在设置CLLocationManager是添加请求获取用户信息的代码

    // NSLocationAlwaysUsageDescription对应
    [self.mgr requestAlwaysAuthorization];
    
    // NSLocationWhenInUseUsageDescription对应
    self.mgr  requestWhenInUseAuthorization];
    
    

    关于 Error Domain=kCLErrorDomain Code=0 "(null)"

    使用模拟器测试定位时由于模拟器不支持定位需要手动设置默认位置,具体步骤如下。

    1. 进入Edit Scheme


      这里写图片描述
    2. 指定一个默认位置就没问题了


      这里写图片描述

    资料参考:

    这里写图片描述
    1. 其他参考可能对你有所帮助(小编测试发现NO卵用,或许Xcode版本不同的缘故吧)
      1. 将上文中Default Location上方的allow Location的勾去掉
      2. 重置模拟器
      3. 再讲上述的小勾勾选
      4. 再重启模拟器<O(∩_∩)O~>

    小编在做定位时发现定位位置一直是北京天安门附近

    可是我在北四环呢,这定位偏差也太大了吧
    这里面肯定有猫腻。。。。

    小编总结了两点和大家一起分享:

    1.可能是你使用模拟器配置了Default Location,这个要还原成None,具体操作步骤请看模拟器地理定位的设置。

    2.你是用的测试机记过刷机了,尝试对测试机恢复出厂设置。

    相关文章

      网友评论

        本文标题:iOS8后定位代理方法不执行解决和定位地址一直是同一个位置

        本文链接:https://www.haomeiwen.com/subject/zjoxdttx.html