xcode 5 以上 需要自己倒入CoreLocation.framework 库

然后使用的时候在倒入头文件

#import <CoreLocation/CoreLocation.h>

xcode 5 以上不用手动倒入库,直接倒入头文件即可

corelocation 这个使用 ios 7 和 ios 8 使用有区别

在ios 7 中使用定位3部

1.创建管理者

//    CLLocationManager *mgr = [[CLLocationManager alloc] init];

由于定位是实时的,所以需要一直保持创建的管理者是不死的

@property(nonatomic,strong)clloctionManger *mgr;

然后做懒加载,保证mgr不为空

- (CLLocationManager *)mgr
{if (!_mgr) {_mgr = [[CLLocationManager alloc] init];}return _mgr;
}

2,开始定位

[self.mgr startUpdatingLocation];

3,为了能够监听,实现代理

<CLLocationManagerDelegate>
self.mgr.delegate=self;//开始定位的时候,调用代理的这个方法

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{NSLog(@"%s", __func__);// 如果只需要获取一次, 可以获取到位置之后就停止
//    [self.mgr stopUpdatingLocation];}

ios 8 中使用和ios 7 中有差别

viewController.m

#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>@interface ViewController ()<CLLocationManagerDelegate>
/***  定位管理者*/
@property (nonatomic ,strong) CLLocationManager *mgr;
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.// 1.创建CoreLocation管理者
//    CLLocationManager *mgr = [[CLLocationManager alloc] init];// 2.成为CoreLocation管理者的代理监听获取到的位置self.mgr.delegate = self;// 设置多久获取一次
//    self.mgr.distanceFilter = 500;// 设置获取位置的精确度/*kCLLocationAccuracyBestForNavigation 最佳导航kCLLocationAccuracyBest;  最精准kCLLocationAccuracyNearestTenMeters;  10米kCLLocationAccuracyHundredMeters;  百米kCLLocationAccuracyKilometer;  千米kCLLocationAccuracyThreeKilometers;  3千米*/
//    self.mgr.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;/*注意: iOS7只要开始定位, 系统就会自动要求用户对你的应用程序授权. 但是从iOS8开始, 想要定位必须先"自己""主动"要求用户授权在iOS8中不仅仅要主动请求授权, 而且必须再info.plist文件中配置一项属性才能弹出授权窗口NSLocationWhenInUseDescription,允许在前台获取GPS的描述NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述*/// 判断是否是iOS8if([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0){NSLog(@"是iOS8");// 主动要求用户对我们的程序授权, 授权状态改变就会通知代理//
        [self.mgr requestAlwaysAuthorization]; // 请求前台和后台定位权限
//        [self.mgr requestWhenInUseAuthorization];// 请求前台定位权限}else{NSLog(@"是iOS7");// 3.开始监听(开始获取位置)
        [self.mgr startUpdatingLocation];}}/***  授权状态发生改变时调用**  @param manager 触发事件的对象*  @param status  当前授权的状态*/
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{/*用户从未选择过权限kCLAuthorizationStatusNotDetermined无法使用定位服务,该状态用户无法改变kCLAuthorizationStatusRestricted用户拒绝该应用使用定位服务,或是定位服务总开关处于关闭状态kCLAuthorizationStatusDenied已经授权(废弃)kCLAuthorizationStatusAuthorized用户允许该程序无论何时都可以使用地理信息kCLAuthorizationStatusAuthorizedAlways用户同意程序在可见时使用地理位置kCLAuthorizationStatusAuthorizedWhenInUse*/if (status == kCLAuthorizationStatusNotDetermined) {NSLog(@"等待用户授权");}else if (status == kCLAuthorizationStatusAuthorizedAlways ||status == kCLAuthorizationStatusAuthorizedWhenInUse){NSLog(@"授权成功");// 开始定位
        [self.mgr startUpdatingLocation];}else{NSLog(@"授权失败");}
}#pragma mark - CLLocationManagerDelegate
//- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
/***  获取到位置信息之后就会调用(调用频率非常高)**  @param manager   触发事件的对象*  @param locations 获取到的位置*/
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{NSLog(@"%s", __func__);// 如果只需要获取一次, 可以获取到位置之后就停止
//    [self.mgr stopUpdatingLocation];

}#pragma mark - 懒加载
- (CLLocationManager *)mgr
{if (!_mgr) {_mgr = [[CLLocationManager alloc] init];}return _mgr;
}
@end

ios 8 需要在infp.plist文件中添加

NSLocationAlwaysUsageDescription  String iOS8请求授权(可更换写其他)

这项

转载于:https://www.cnblogs.com/lizhan1991/p/4895178.html

定位CoreLocation 使用相关推荐

  1. 定位 - CoreLocation - 打印位置信息

    1. 导入框架 <CoreLocation.framework>, 引入头文件 import <CoreLocation/CoreLocation.h>; 2. 创建管理者对象 ...

  2. iOS学习笔记19 地图(一)定位CoreLocation

    ###一.定位介绍 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式. ...

  3. iOS 定位(CoreLocation)

      在很多LBS的应用中我们都可以看到定位的使用.如下面美团外卖选择城市的页面.   下面我们就实现一个定位Demo,并将获取到的定位城市展示到页面上.   iOS系统已经封装了一个用于定位的类库Co ...

  4. iOS开发 --- 定位功能(系统框架CoreLocation)

    最近在做定位功能,只需要获取当前位置信息,包括经纬度.位置等,不需要持续获取. 对CoreLocation的封装.将定位相关的代码从 Controller 中分离,封装到 NSObject 对象中.采 ...

  5. iOS地图定位(Map)

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

  6. iOS CoreLocation和MapKit详解

    引言 位置定位几乎是App中的不可或缺的功能,功能分为两部分:一部分是使用CoreLocation框架来获取地理位置经纬度:另一部分:使用MapKit将经纬度以UI的形式展示出来. 使用场景 导航软件 ...

  7. 地图定位及大头针设置

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

  8. IOS原生地图与高德地图

    原生地图 1.什么是LBS LBS: 基于位置的服务   Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位  ...

  9. html js修改readonly,js控制html元素的readonly属性

    html元素假设为只读,那么其readonly="readonly",我们现在想通过js来改变readonly属性为可以输入. 初始时,两个输入框都是只读.点击change按钮后, ...

  10. iOS攻城狮修炼之路

    自己总结的学习iOS的笔记,打造一个全面的知识体系,iOS攻城狮修炼之路[持续更新中] iOS学习笔记01-APP相关 iOS学习笔记02-UIScrollView iOS学习笔记03-UITable ...

最新文章

  1. SAP RETAIL WB02 为门店激活物料分类账报错 - ML currencies are not integrated in FI for valuation area m123 NMI1 –
  2. 在selenium中使用css选择器进行元素定位(一)
  3. s.assign()用法c++_assign是什么意思
  4. C#中JSON和对象之间互相转换功能示例
  5. junit 运行_运行,JUnit! 跑!!!
  6. 把本地仓库建到github
  7. 接到骗子短信后........
  8. 二叉树最小单元结点的实现
  9. Activemq判断队列存活脚本(一)
  10. PyTorch学习:参数初始化
  11. 2020年最新世界地图_2020年标准地图发布,为何要发布新版标准地图?
  12. GPUImage详细解析- 实时美颜滤镜
  13. 佳能7660cdn 评价_佳能LBP7660Cdn说明书
  14. cd linux制作u盘启动盘,【cdlinux u盘启动】cdlinux制作U盘启动盘详细教程
  15. 警告: A docBase inside the host appBase has been specified, and will be ignore2
  16. mysql远程过程调用失败怎么办_远程过程调用失败且未执行是什么意思
  17. 电脑上如何录制微信语音聊天
  18. 从入门到精通,看了这篇文章,你离老黑的路就不远了
  19. 【城北徐公之机器学习】感知机模型
  20. 【排序】堆排序详解 附代码

热门文章

  1. 小白如何购买阿里云服务器(2019最详细教程)
  2. 关闭所有的screen
  3. 极棒开启AI挑战 全球寻找顶级语音合成“机械师”
  4. java.lang.IllegalStateException: Async support must be enabled on a servlet and for all filters invo
  5. CentOS 6.9之LVM创建,扩容
  6. SQL Server数据库镜像下有效的索引维护
  7. 函数除颤/节流提高性能 + 原生实现滚动时到视口时展现
  8. 计算2的任意次方[通用版]
  9. AppSettings
  10. 用FileInputStream和FileOutPutStream读写文件