自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 13684|回复: 30
打印 上一主题 下一主题

iOS 8无法定位的解决方案

[复制链接]
最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
跳转到指定楼层
楼主
发表于 2014-9-22 09:48:45 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chenjie_1986 于 2014-10-16 09:43 编辑

升级iOS 8后,将无法定位,特给出解决方案。
1.Plist中追加下字段NSLocationWhenInUseUsageDescription或NSLocationAlwaysUsageDescription(这两个字段必须有其中一个,内容是系统alert的文言,文言可为空) ,如下图所示:
WhenInUse是应用在前台的时候可以搜到更新的位置信息,Always是除了应用在前台,应用在后台(suspend或terminated)都可以获取到更新的位置数据 ,根据需要,按需去申请权限

2.修改代码,self.mapView.showsUserLocation= YES;加入如下代码

定义CLLocationManager对象,私有的或者property都可以,以确保alert弹出,用户点击完以后 CLLocationManager 对象还没被释放。示例如下:
  1. @implementation ViewController
  2. {
  3.     CLLocationManager * locationManager;
  4. }
  5.   ……  

  6. locationManager =[[CLLocationManager alloc] init];

  7.   // fix ios8 location issue
  8.     if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
  9. #ifdef __IPHONE_8_0
  10.         if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
  11.         {
  12.             [locationManager performSelector:@selector(requestAlwaysAuthorization)];//用这个方法,plist中需要NSLocationAlwaysUsageDescription
  13.         }
  14.         
  15.         if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
  16.         {
  17.             [locationManager performSelector:@selector(requestWhenInUseAuthorization)];//用这个方法,plist里要加字段NSLocationWhenInUseUsageDescription
  18.         }
  19. #endif
  20.     }
复制代码

以上解决方案仅针对Xcode6,适用于V2.3.0(含)之前版本。







回复

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
沙发
 楼主| 发表于 2014-9-23 14:35:35 | 显示全部楼层
charlesleo 发表于 2014-9-23 14:24
我测试的也不行....

您好!您的locationmanager是定义成property或者私有了吗?必须保证该对象没有被释放掉。
回复 支持 反对

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
板凳
 楼主| 发表于 2014-9-23 14:35:39 | 显示全部楼层
charlesleo 发表于 2014-9-23 14:24
我测试的也不行....

您好!您的locationmanager是定义成property或者私有了吗?必须保证该对象没有被释放掉。
回复 支持 反对

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
地板
 楼主| 发表于 2014-9-28 15:18:47 | 显示全部楼层
langhua9527 发表于 2014-9-26 20:51
这个是只执行一次,还是要每个VIEWCONTROLLER都要来一下?

您好!一次就行~
回复 支持 反对

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
5#
 楼主| 发表于 2014-10-8 10:51:25 | 显示全部楼层
hitbin 发表于 2014-10-2 17:24
你好 问一下
地理反编码 区返回,城市不返回!!!BUG啊啊,有人知道吗?
************** 更新一********** ...

您好!直辖市——北京、上海等,逆地理编码city无返回,province返回。
回复 支持 反对

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
6#
 楼主| 发表于 2015-1-26 13:30:47 | 显示全部楼层
MacQiQi 发表于 2015-1-26 13:23
为什么我的还是不能定位呢

用demo试试~
回复 支持 反对

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
7#
 楼主| 发表于 2015-1-26 13:31:13 | 显示全部楼层
MacQiQi 发表于 2015-1-26 13:22
为什么我都弄了还是不行呢?急死了

真机还是模拟器?最好用真机~
回复 支持 反对

使用道具 举报

最佳答案
66 

37

主题

1135

帖子

2883

积分

超级版主

Rank: 8Rank: 8

积分
2883
8#
 楼主| 发表于 2015-6-30 11:27:26 | 显示全部楼层
roysoho 发表于 2015-6-1 17:10
我没有使用地图服务,只用了搜索服务,能定位吗?

不行,定位是封装在mapview中了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表