在iOS8以前的版本中,我们使用CLLocationManager定位是没有问题的,最近在iOS8系统中却无法定位了。。。。这是一大问题啊!

1、首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import <CoreLocation/CoreLocation.h>
@property (nonatomic, strong) CLLocationManager  *locationManager;
2、初始化CLLocationManager并开始定位
locationManager=[[CLLocationManager alloc] init];locationManager.delegate=self;locationManager.desiredAccuracy=kCLLocationAccuracyBest;locationManager.distanceFilter=10; [locationManager startUpdatingLocation];//开启定位
3、实现CLLocationManagerDelegate的代理方法
#pragma mark CLLocationManagerDelegate
/**
* 获取经纬度
*/
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{CLLocation *currLocation=[locations lastObject];location.strLatitude=[NSString stringWithFormat:@"%f",currLocation.coordinate.latitude];location.strLongitude=[NSString stringWithFormat:@"%f",currLocation.coordinate.longitude];NSLog(@"la---%f, lo---%f",currLocation.coordinate.latitude,currLocation.coordinate.longitude);
}
/***定位失败,回调此方法*/
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{if ([error code]==kCLErrorDenied) {NSLog(@"访问被拒绝");}if ([error code]==kCLErrorLocationUnknown) {NSLog(@"无法获取位置信息");}
}

iOS8中使用CoreLocation定位

1、在使用CoreLocation前需要调用如下函数【iOS8专用】:
iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:
(1)始终允许访问位置信息
- (void)requestAlwaysAuthorization;
(2)使用应用程序期间允许访问位置数据
- (void)requestWhenInUseAuthorization;
示例如下:
locationManager=[[CLLocationManager alloc] init];locationManager.delegate=self;locationManager.desiredAccuracy=kCLLocationAccuracyBest;locationManager.distanceFilter=10;if (iOSVersion>=8) {[locationManager requestWhenInUseAuthorization];//使用程序其间允许访问位置数据(iOS8定位需要)}[locationManager startUpdatingLocation];//开启定位
2、在Info.plist文件中添加如下配置:
(1)NSLocationAlwaysUsageDescription
(2)NSLocationWhenInUseUsageDescription
这样添加后,定位功能就能正常使用了!

转载于:https://my.oschina.net/ewfii3f/blog/702608

iOS CLLocationManager定位相关推荐

  1. iOS Swift 使用 CLLocationManager 定位

    iOS Swift 使用 CLLocationManager 定位 CLLocationManager 是IOS 系统提供的定位对象,通过该对象可以获取定位信息,包括:经纬度.海拔.方向.速度.通过反 ...

  2. iOS地图定位(Map)

    1.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如     导航:去任意陌生的地方     周边:找餐馆.找酒店.找银行.找电影院     手机软件:微信摇一摇.QQ附近的人. ...

  3. iOS地图定位小功能(上)

    讲到iOS的定位呢,首先先介绍一下定位这东西.iOS系统自带的定位服务可以实现很多需求.比如:获取当前经纬度,获取当前位置信息等等. 一.介绍 1.定位 使用CoreLocation框架     2. ...

  4. iOS开发——定位 获取经纬度

    最近公司提供了一个学习iOS的机会,问我是否愿意学习iOS,还是继续只做android开发.我感觉非常幸运,能有此机会去学习iOS,当即说要学习iOS开发. 学习了几天啦,做了一个小demo实现了获取 ...

  5. iOS 通过定位启动App

    本文介绍iOS定位的三种情况:本文介绍iOS定位的三种情况: iOS前台定位以及不同版本(iOS 7.8.9)之间定位的基本使用和异同点 iOS后台(Background)的持续定位 APP未运行(N ...

  6. iOS 快速定位约束冲突

    iOS 快速定位约束冲突 什么是约束冲突 当你使用 AutoLayout 布局,你添加的约束不满足或者会造成系统布局冲突的时候,控制台就会打印冲突日志. 约束冲突示例 [LayoutConstrain ...

  7. IOS 固定定位失效的分析与解决办法

    1,固定定位失效 首先查看是不是固定定位没有应用上(IOS和Android 都测试一下) 猜想一,父元素使用了 transform 属性 解决方案 // 解决方法: .father{transform ...

  8. iOS crash 定位方式

    文章目录 iOS crash 定位方式 1. symbolicatecrash 定位 2. atos 定位 iOS crash 定位方式 1. symbolicatecrash 定位 在iOS 中系统 ...

  9. Flutter开发之iOS后台定位开发详解

    Flutter开发之iOS后台定位开发详解 需求目的 开发一个功能持续获取用户的位置发送给后端,PC端会根据后端传来的移动端发送的位置信息,来绘制使用者的运动轨迹. 实现需求 是否实现 后台定位 ✅ ...

最新文章

  1. 关于Android模拟器访问本地地址(转)
  2. Unity中如何计算带minimap的贴图资源的大小
  3. 002_SpringIOC
  4. IIS6下配置fastcgi的php的教程
  5. mac下androidStudio 运行模拟器出现:
  6. js 深复制一个对象
  7. left join 重复数据_Python数据分析整理小节
  8. Centos npm 安装JDK及配置环境变量
  9. 百度地图Key的设置方法
  10. 维基媒体宣布采用 Vue.js 进行前端开发
  11. 虚拟机下安装MS-DOS
  12. Android ConnectivityManager详解
  13. php生产环境性能瓶颈分析,使用XHProf分析PHP性能瓶颈(一)
  14. 电脑围棋领域的研究概述
  15. 行业解读 | 什么是人工智能语音技术?一篇文章让你读懂它
  16. java中的变量是什么
  17. python摄氏度转华氏度_如何用 python编写华氏摄氏度的相互转换?
  18. 正则表达式中,如何在任意匹配字符后面加上原字符和特定内容
  19. GRBL二:串口控制命令及代码解析(转载)
  20. AForge学习笔记(4):AForge.Genetic

热门文章

  1. 【沃顿商学院学习笔记】商业分析——People Analytics:11 描述协作网络 Describing Collaboration Networks
  2. 【百度训练营】python小白逆袭大神 day2心得
  3. cefsharp保存文件为pdf
  4. Linux系统之Uboot、Kernel、Busybox思考之三
  5. 怎么给网站申请免费的SSL证书,简单几步就能完成
  6. Unity基础三: 什么是Shader
  7. 入手ESP-32 开发板的避坑的一二事
  8. 浅谈stdio.h及cstdio的区别
  9. vue build 报错 UglifyJs
  10. ES6-ES11新特性(这一篇就够了)