iOS8 CLLocationManager初步使用

最近在ios8.0使用CLLocationManager定位服务,发现老不能定位,查看设置菜单中的项也是处于未知状态.想起之前都有一个弹出框提示用户是否允许定位,这次一直没有出现了.原来ios8.0下的定位服务需要申请授权了. 具体代码如下:

if ([CLLocationManager locationServicesEnabled]) {

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

_locationManager.delegate = self;

_locationManager.desiredAccuracy = kCLLocationAccuracyBest; //控制定位精度,越高耗电量越大。

_locationManager.distanceFilter = 100; //控制定位服务更新频率。单位是“米”

[_locationManager startUpdatingLocation];

//在ios 8.0下要授权

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)

[_locationManager requestWhenInUseAuthorization];  //调用了这句,就会弹出允许框了.

}

注意:

在Info.plist文件还要加上NSLocationWhenInUseUsageDescription这个key,Value可以为空,

#pragma mark - CLLocationManagerDelegate

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {

CLLocation * currLocation = [locations lastObject];

NSLog(@"%@",[NSString stringWithFormat:@"%.3f",currLocation.coordinate.latitude]);

NSLog(@"%@",[NSString stringWithFormat:@"%.3f",currLocation.coordinate.longitude]);

}

时间: 2024-10-12 13:01:40

iOS8 CLLocationManager初步使用的相关文章

在iOS8下使用CLLocationManager定位服务需要系统授权

最近在ios8.0使用CLLocationManager定位服务,发现老不能定位,查看设置菜单中的项也是处于未知状态.想起之前都有一个弹出框提示用户是否允许定位,这次一直没有出现了.原来ios8.0下的定位服务需要申请授权了. 具体代码如下: 1 if ([CLLocationManager locationServicesEnabled]) { 2 3 self.locationManager = [[CLLocationManager alloc] init]; 4 5 _locationM

基于swift语言iOS8的蓝牙连接(初步)

看过一些蓝牙App的事例,大体上对蓝牙的连接过程进行了了解.但是开始真正自己写一个小的BLE程序的时候就举步维艰了.那些模棱两可的概念在头脑中瞬间就蒸发了,所以还是决定从最基本的蓝牙连接过程进行.这里所说的蓝牙是针对 bluetooth 4.0的. 第一步就是去看官方的关于蓝牙框架的文档,即Core Bluetooth Programming Guide,在苹果的官方网站上可以轻松找到,不管你对蓝牙的基本概念是否有了解,这个文件可以使你更好的对蓝牙的连接过程有个了解.这个文档的前面几张介绍了关于

iOS CLLocationManager定位,IOS8注意

今天下午动手用了IOS自带的定位,结果在网上看了很多教程,也将示例代码直接运行,但就是一直无法获取位置,代码如下: 首先导入CoreLocation.framework,然后再引入头文件#import  定义属性 ? 1 @property (nonatomic , strong)CLLocationManager *locationManager; 然后使用代理 CLLocationManagerDelegate - (void)locate{ // 判断定位操作是否被允许 if([CLLoc

iOS8中定位服务的变化(CLLocationManager协议方法不响应,无法回掉GPS方法,不出现获取权限提示)

最近在写一个LBS的项目的时候,因为考虑到适配iOS8,就将项目迁移到Xcode6.0.1上,出现了不能正常获取定位服务权限的问题. self.manger = [[CLLocationManager alloc]init]; self.manger.distanceFilter = kCLDistanceFilterNone; // meters self.manger.delegate = self; [self.manger requestAlwaysAuthorization]; sel

ios8定位问题(建议CLLocationManager 和MKMapView 结合使用)

1.在info.plist中添加key NSLocationWhenInUseUsageDescription.NSLocationAlwaysUsageDescription. 2.CLLocationManager 切记定义成成员变量.或者属性,否则导致不弹出系统提示打开定位提示框 3.直接上代码 #pragma mark - CLLocationManagerDelegate - (void)startLocation{ self.locationmanager = [[CLLocatio

iOS8定位问题解决方案

原文  http://blog.csdn.net/nextstudio/article/details/40050095 主题 iOS8 1.修改info 新增Key: NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription ,这两个Key的值将分别用于描述应用程序始终使用和使用期间使用定位的说明,这些说明将显示在用户设置中. info新增键值对如下 : 应用程序说明参见微信: 2.CLLocationMana

【iOS开发-109】CoreLocation框架的两个主要类CLLocationManager和CLGeoCoder介绍

CoreLocation框架主要由两个常用的类,一个是CLLocationManager,一个是CLGeoCoder. (1)CoreLocation的使用,先导入CoreLocation框架. (2)一般是利用位置管理器来操作,即CLLocationManager --开启,就是startUpdatingLocation:关闭,就是stopUpdatingLocation --可以先判断位置服务是否开启locationServicesEnabled,如果没开启,直接返回空,不操作. --iOS

xcode6打开以前工程在Ios8系统无法定位解决方案

xcode6打开以前xcode5工程,发现程序不能定位,包括iOS8模拟器,真机都不能定位?代码经检查没有问题,后来查找苹果Ios8升级差异策略,发现Ios8对定位处理做了一些调整,工程升级到xcode6编译时需要iOS8 要自己写授权,不然没权限定位.修改点如下:       1: 在Info.plist中加入两个缺省没有的字段 ,值均设置为YES        NSLocationAlwaysUsageDescription       NSLocationWhenInUseUsageDes

iOS8之后对定位和消息推送API的修改

1.定位 定位是定位,地图是地图,在iOS中 CLLocation是专门负责定位或者获取位置信息的;而MAPkit是专门负责地图显示的 位置管理器(CLLocationManager) :负责获取,同时负责监控用户位置发生变化        //[注意] 位置管理器一定要写成属性,不是属性出栈就没有了    _manager = [[CLLocationManager alloc] init];        //设置位置管理器代理   <CLLocationManagerDelegate>