iOS9下有关CoreLocation学习一
来源:互联网 发布:淘宝美工详情页套版 编辑:程序博客网 时间:2024/05/29 10:03
CoreLocation
注意iOS8后包括iOS9.0等在运行程序后模拟器并没有弹出是否允许定位的警示框的解决办法
//添加下面两行代码 [self.locMgr requestAlwaysAuthorization];//允许前后台程序定位 [self.locMgr requestWhenInUseAuthorization];//允许程序前台运行的时候定位
在info.plist文件中加入以下两个属性
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
如下图片所示
注意:后面的value可以选择性的填写。
源码如下:(待完善…)
//// ViewController.m// CoreLocationTest//// Created by LoveQiuYi on 16/2/22.// Copyright © 2016年 LoveQiuYi. All rights reserved.//#import "ViewController.h"#import <CoreLocation/CoreLocation.h>/** * 实现CLLocationManagerDelegate协议的对象可以处理CLLocationManager的定位事件 */@interface ViewController ()<CLLocationManagerDelegate>@property (nonatomic, strong) CLLocationManager * locMgr;@end@implementation ViewController-(CLLocationManager *)locMgr{ if (!_locMgr) { //创建一个定位管理器类 self.locMgr = [[CLLocationManager alloc]init]; //设置代理 self.locMgr.delegate = self; //定位精确度设置->隔多远的距离定位一次 self.locMgr.desiredAccuracy = kCLLocationAccuracyBest;//最好的,最理想的 /*几种精确度详细情况*/ // kCLLocationAccuracyBestForNavigation // 最适合导航 // kCLLocationAccuracyBest; // 最好的 // kCLLocationAccuracyNearestTenMeters; // 附近10米 // kCLLocationAccuracyHundredMeters; // 100米 // kCLLocationAccuracyKilometer; // 1000米 // kCLLocationAccuracyThreeKilometers; // 3000米 } return _locMgr;}- (void)viewDidLoad { [super viewDidLoad]; //判断系统定位服务有没有打开 if (![CLLocationManager locationServicesEnabled]) { NSLog(@"没有定位 或者没有打开定位"); //引导用户去打开定位服务 } [self.locMgr requestAlwaysAuthorization]; [self.locMgr requestWhenInUseAuthorization]; //获取定位信息 [self.locMgr startUpdatingLocation];}#pragma mark - CLLocationManagerDelegate方法//定位到用户的位置的时候就会调用这个方法->调用次数频繁-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{ //获取当前的位置 CLLocation * currentLocation = [locations lastObject]; //输出当前位置的经度纬度高度 NSLog(@"纬度是%f,经度是%f,高度是%f",currentLocation.coordinate.latitude,currentLocation.coordinate.longitude,currentLocation.altitude); //停止获取定位信息 [self.locMgr stopUpdatingLocation];}//获取定位信息失败的时候调用-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{ NSLog(@"调用失败");}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
更多解释:http://stackoverflow.com/questions/24062509/location-services-not-working-in-ios-8
注意:
1.当系统的定位服务没有开启的时候,运行程序会弹出警告框提示说去设置中打开定位服务。
2.当你需要在模拟器中去模拟用户的位置改变的时候在模拟器的菜单栏的debug选项中Location中选择customLocation,改变这个值就可以改变模拟器的定位位置。
0 0
- iOS9下有关CoreLocation学习一
- iOS9下有关CoreLocation学习二
- iOS9下有关CoreLocation学习三
- iOS学习笔记 地图(一)定位CoreLocation
- CoreLocation框架地图定位(iOS9全适配)
- iOS学习笔记19-地图(一)定位CoreLocation
- CoreLocation(一)
- CoreLocation定位学习笔记
- iOS8.0+ 至 iOS9.0之前的CoreLocation定位
- MapKit/CoreLocation使用(一)
- iOS8下,CoreLocation的变化
- CoreLocation
- CoreLocation
- CoreLocation
- coreLocation
- iOS9-by-Tutorials-学习笔记一:Swift-2-0
- Swift 学习笔记(二)Ios9下访问http://
- iOS CoreLocation框架第一章—— CLLocationManager的使用(包含iOS6,iOS8,iOS9各种变动)
- CodeForces 46B T-shirts from Sponsor
- 碰撞检测之Ray-Box检测
- ubuntu14.10系统_apt-get_update失败解决办法
- JVM学习笔记4—GC参数
- ArrayList嵌套存储变长数组
- iOS9下有关CoreLocation学习一
- 嵌入式开发的基本环境配置大全
- #HDU 1372 Knight Moves 【BFS】
- UVALive 5878 - Shortest Leash 【计算几何】
- !!!!!!!!!!!!!!!!!!!!!!!!!
- cocos2dx学习之路----第五篇(切换场景的另一种方式:使用popScene与pushScene)
- 图像分割简单处理
- android studio导入SlidingMenu的方法
- 016-Storm借助tick消息定时器统计统计周期性业务