现象:

使用 iPhone 或者 iPad 经常定位到香港(22.284681,114.158177)去。重启设备后又可以了。但是隔一会儿,又到香港去了。

//
//  GPSViewController.m
//  Fly Survey
//
//  Created by dinghongyan on 13-7-5.
//
//#import "GPSViewController.h"
#import "ZYFileUtil.h"
#import "ZYDateUtil.h"
#import <CoreLocation/CoreLocation.h>
#import "ZYMyLog.h"@interface GPSViewController ()<CLLocationManagerDelegate>
@end@implementation GPSViewController-(id)init{if (self = [super init]) {if ([CLLocationManager locationServicesEnabled]) {self.lm = [[CLLocationManager alloc] init];self.lm.delegate = self;self.lm.desiredAccuracy = kCLLocationAccuracyBest;}}return self;
}-(void)startGPS{if (self.lm) {[self.lm startUpdatingLocation];}
}-(void)stopGPS{if (self.lm) {[self.lm stopUpdatingLocation];}
}//iOS 8
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{switch (status) {case kCLAuthorizationStatusNotDetermined://用户还没有选择是否授权if ([self.lm respondsToSelector:@selector(requestAlwaysAuthorization)]) {[self.lm requestAlwaysAuthorization];}break;case kCLAuthorizationStatusAuthorizedAlways:case kCLAuthorizationStatusAuthorizedWhenInUse://有定位权限,开始定位,并计时[self.delegate gpsStartLocating];break;default://没有定位权限,提示[self.delegate gpsLocatedFailed];break;}
}//iOS6.0以上推荐使用方法
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{//此处locations存储了持续更新的位置坐标值,取最后一个值为最新位置,如果不想让其持续更新位置,则在此方法中获取到一个值之后让locationManager stopUpdatingLocationCLLocation *currentLocation = [locations lastObject];[self saveLocation:currentLocation];[self.lm stopUpdatingLocation];
}//iOS6.0以下
- (void) locationManager: (CLLocationManager *) managerdidUpdateToLocation: (CLLocation *) newLocationfromLocation: (CLLocation *) oldLocation{[self saveLocation:newLocation];[self.lm stopUpdatingLocation];}- (void)saveLocation:(CLLocation *)newLocation
{//纬度NSString *latitude = [[NSString alloc] initWithFormat:@"%f",newLocation.coordinate.latitude];//经度NSString *longitude = [[NSString alloc] initWithFormat:@"%f",newLocation.coordinate.longitude];//2015-1-30 过滤定位香港的if ([latitude isEqualToString:@"22.284681"] && [longitude isEqualToString:@"114.158177"]) {//定位不正确,请重启定位服务[self.delegate gpsInHongKong];//保存定位信息NSString *timeNow = [ZYDateUtil timeNow:@"yyyy-MM-dd HH:mm:ss"];[[ZYMyLog sharedMyLog] appendString:[NSString stringWithFormat:@"更新位置:(%@,%@), 定位在香港,不允许通过",latitude,longitude]];self.longitude = @"";self.latitude = @"";self.time = timeNow;}else{//保存定位信息NSString *timeNow = [ZYDateUtil timeNow:@"yyyy-MM-dd HH:mm:ss"];[[ZYMyLog sharedMyLog] appendString:[NSString stringWithFormat:@"更新位置:(%@,%@)",latitude,longitude]];self.longitude = longitude;self.latitude = latitude;self.time = timeNow;}}- (void) locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {NSString *timeNow = [ZYDateUtil timeNow:@"yyyy-MM-dd HH:mm:ss"];[[ZYMyLog sharedMyLog] appendString:[NSString stringWithFormat:@"定位出错:%@",error]];self.time = timeNow;self.longitude = @"";self.latitude = @"";[self.lm stopUpdatingLocation];[self.delegate gpsLocatedFailed];
}@end

一开始认为这个是 iOS 本身的bug,因为定位就是调一个接口而已,我能干涉的并不多。而且,出现定位香港之后,我使用高德地图、苹果地图,都是定位到香港。因此我百分之百认定,就是系统bug。

直到跟老公一直争论,老公坚持认为是我的app的问题,于是用他的 iPhone(未安装我的app)搞来搞去,就是没有出现定位香港。

后来在网上搜索,也没有人遇到跟我一样的情况,我开始怀疑了。

再用测试机测试,当我的app中出现定位香港之后,使用高德地图定位,依然是香港。 这时候,我把我的app退出,再用高德地图去定位的时候,神奇的事情发生了,定位对了!果然,出问题的是我的app,不是系统bug。

在网上搜索了定位的这个坐标(22.284681,114.158177), 是一个苹果店。 于是猜想,会不会是定位没成功的时候,先返回这个值,然后继续定位的呢?

但是去掉时间限制之后,还是一直定位香港,目前无解。

======== 2015-2-3 更新 ============

解决办法:

偶然看到一篇文章:xcode4.2 模拟器定位

原来xcode里面可以模拟一个位置,检查了下自己模拟器中的设置:

果然是在香港的。难怪只要退出我的app,就定位正确了。

于是改成Don't Simulate Location,再运行我的app,果然没有问题了。

再改成别的位置,确实定位到对应的地方了。

至此,奇葩终于解开!

【已解决】【奇葩5】iOS 定位到香港相关推荐

  1. ios测试版软件闪退,【已解决】某iOS的app大面积发生问题一打开就闪退

    现象:之前正常用了,近1年的一个iOS的app,观致集客管家,突然用户在今天20180901,打不开了,一打开就闪退,不知道何故. 同事自己的iPhone去测试,也是同样现象:一打开就闪退. 现在需要 ...

  2. 已解决:fastclick插件在IOS系统上点击input需要双击或长按才有效

    已解决:fastclick插件在Vue移动端IOS系统上点击input需要双击或长按才有效 做Vue项目的登录注册页面测试时发现的问题,Chrome浏览器上使用三星手机Glaxy S5测试input是 ...

  3. 微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非https网站不提供支持问题

    微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非https网站不提供支持问题 参考文章: (1)微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非http ...

  4. 【已解决】(uni-app)IOS 端 H5 应用无法发起请求,请求状态码为0,错误描述为request:fail

    [已解决](uni-app)IOS 端 H5 应用无法发起请求,请求状态码为0,错误描述为request:fail 目录 [已解决](uni-app)IOS 端 H5 应用无法发起请求,请求状态码为0 ...

  5. IOS定位核心与地图

    本文转载至:http://www.cnblogs.com/xinye/archive/2013/06/13/3134746.html IOS定位核心与地图                 Core L ...

  6. iOS 定位和地图

    iOS中有三个定位服务组件: Wifi定位,通过查询一个Wifi路由器的地理位置的信息.比较省电,iPod touch和iPad也可以采用. 蜂窝基站定位,通过移动运用商基站定位.也适合有3G版本的i ...

  7. ios 高德获取定位_更新日志-iOS 定位SDK | 高德地图API

    高德地图iOS 定位 SDK V2.6.7            2020-08-28 1.适配iOS14定位权限:新增"模糊定位"权限下的兼容策略: 2.修复bug,提升性能和稳 ...

  8. 已解决IndexError: list index out of range

    已解决(Python爬虫遍历列表报错)IndexError: list index out of range 文章目录 报错代码 报错翻译 报错原因 解决方法 千人全栈VIP答疑群联系博主帮忙解决报错 ...

  9. 已解决mybatis报错:Invalid bound statement (not found)

    已解决mybatis报错:Invalid bound statement (not found) 文章目录 报错问题 解决方法 福利 报错问题 之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一 ...

最新文章

  1. 中国批准AMD收购赛灵思!苏妈花350亿美元集齐CPU\GPU\FPGA三大芯片业务
  2. mybatis批量夺标添加_MyBatis+MySQL同时执行多条SQL,实现多表插入数据
  3. 自己有電腦的一定要看看,非常有用呢。
  4. java8日期转时间戳_Java 8日期和时间
  5. php faker 中文,使用faker 生成中文测试数据
  6. [html] HTML5的video在手机端如何实现进来页面时就自动播放?
  7. POJ-2034 Anti-prime Sequences dfs
  8. UVN相机模型矩阵推导
  9. 关于http-server的备选方案-- browser-sync
  10. iOS开发技巧:使用Objective-C创建UUID
  11. 来给你的CSDN博客换个皮肤~
  12. 给CSDN上原创文章添加版权声明(干货)
  13. Excel求和公式的几种用法
  14. python画喜羊羊_PYTHON养成日记 DAY-8
  15. java jfreechart 柱状图,JFreeChart -- 柱状图
  16. 内网渗透笔记——三层发现and四层发现
  17. 写给新人的话——谈谈应届生入职后应该怎样快速成长
  18. ps——油漆字体效果
  19. 乐聊----java界面聊天室
  20. 波士顿动力机器人大秀男团舞

热门文章

  1. 2021年12月电子学会青少年软件编程(图形化)等级考试试卷(二级)答案解析
  2. Python截取摄像头图片
  3. tensorflow的容器Sequential 笔记心得
  4. 有序顺序表中插入一个元素,使其仍然有序
  5. 去清华还是去北大,做科研还是做业务
  6. mac系统下安装pygame
  7. Python爬虫系列之逆向淘股吧app签名sign算法
  8. 瑞芯微芯片AI部分开发记录 第一节 《PC端环境搭建1》
  9. (windows下)php-ini文件和开启gd库支持
  10. 兰顿蚂蚁 java源代码_兰顿蚂蚁-Java