年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5760|回复: 0

kCLErrorDomain Code=0终极解决方案!

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2015-6-6 00:12:48 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2015-6-7 20:29 编辑

    1、在使用百度地图时,定位失败一般会报两种错:
    Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"
    Error Domain=
    kCLErrorDomain Code=1 "The operation couldn’t be completed. (kCLErrorDomain error 1.)"
    即我们所说的Code=0和Code=1,网上有很多帖子都说这是模拟器没有GPS硬件造成的xxxxxx,然而我们是真机呀,真机!!!

    2、一提到是真机就没人BB了,就连百度地图开发者论坛都没人能正面回答这个问题,有些人可能模拟器的问题还没解决,那就先说模拟器吧!

    3、关于模拟器我总结一下,比较中肯的说法是,Code=0说明没有位置信息,即没获取到GPS信息,因为没人提供GPS数据给模拟器,两种方式解决:
    3.1、上两个图就明白了,说多人也是废话
    屏幕快照-2015-06-05-下午11.42.12.png

    直接给模拟器经纬度数据

    屏幕快照-2015-06-05-下午11.46.49.png

    Xcode传输一个模拟的经纬度给模拟器,都可以,这个不多说,这样设置就行了,还有什么不明白的参考:http://yusian.com/thread-8226-1-1.html

    4、Code=1说明是系统授权问题,尤其是iOS8再麻烦,这个问题我曾经详细阐述过了,请移驾参考这个:http://yusian.com/thread-8822-1-1.html

    5、终于要说到真机出现Code=0或Code=1的问题了,一般出现这个问题是定位的结果进了代理的
    // 定位失败
    - (void)didFailToLocateUserWithError:(NSError *)error
    这个方法,同样的道理,Code=1是授权问题,和模拟器一样,看上面那个帖子吧,非常详细了http://yusian.com/thread-8822-1-1.html设置几个参数即可解决,或者在这个失败方法里面再申请一下系统授权不就行了,实在是被用户拒绝了,再弹个提醒,用户会可怜你的!

    如果是Code=0,即没有获取到位置信息,这个就麻烦了,绕了好大一个弯,终于到这里了,定位一共分三种,基站、GPS、WiFi,这三者有什么区别呢?.........不多说了,有兴趣参考一下这个:http://yusian.com/thread-7816-1-1.html

    出现定位失败的时候,我在户外,GPS信号应该OK的,而且满格4G信号,网络应该不比WiFi差,即当前基站+GPS定位,应该已经非常精准了,然后iPhone却想都不想一下,直接弹个定位失败给我,感觉他都连试都没试一下就说定位失败,这叫人如何信服?!
    插一句,我们在使用百度地图时不知道有没有注意一个细节,有时候百度地图会弹一个消息告诉你,打开WiFi会提高定位的精确度!这句话非常有讲究,相信看了上面那个贴子你应该知道,WiFi环境下定位是最快的,并且GPS返回的误差是最底的,暂且不管实际误差是不是最底的,至少返回的信息系统告诉你误差在1米范围内,就连在地图上代表误差范围的那个半透明圈圈都没有的。一开始我以为百度的这句提示是想告诉你,使用WiFi定位吧,这样速度快精度又高,其实我想骂人,我在荒山野岭的户外,哪来的WiFi啊?!你这建议有何价值?!

    直到今天我才明白,重点来了,直到今天我才明白,这样的提醒不是要你连接WiFi,他的意图在于希望你打开WiFi开关,只要打开WiFi开关就行,鉴于iOS的严谨性及出于保护用户隐私的考虑,程序是无法直接打开WiFi的,就连当前WiFi是开还是关都没办判断出来,所以我说这句话很有讲究,他不确定你有没有开WiFi,如果确定你没开,他会直接说要你打开WiFi,就是不确定才中庸地讲,打开WiFi会提高定位的精确度,这有点像一句废话,但实则在提醒用户,如果可以,你要不要看一下你的WiFi有没有打开亲,如果没有打开,那就打开吧,没有WiFi不连WiFi也没关系。然而他没法跟用户解决清楚,为什么只要打开这个开关就行,哪怕不连?!

    所以,反正我什么都没说,你是用户你老大,你看着办吧,如果打开WiFi说不定就可以了,如果打开WiFi还不行,那就没办法了,我也没说打开WiFi一定就可以,这就是这句话的精妙之处!

    不想看这么多文字的注意看最后一句话就行:真机定位失败Code=0,把你的WiFi开关打开,甭管连不连WiFi,打开再说试一下又不会怀孕,说不定就可以了呢!!!反正我是可以了!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-11-22 02:43 , Processed in 0.053688 second(s), 25 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表