iOS CLLocationManager定位

在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
这样添加后,定位功能就能正常使用了!
时间: 2024-11-20 16:40:53

iOS CLLocationManager定位的相关文章

iOS CLLocationManager定位,IOS8注意

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

iOS CLLocationManager 定位

今天写个定位,本来很简单,但是在填写plist时,通过系统提示,只能看到NSLocationUsageDescription项目,根本不提示 (1)NSLocationAlwaysUsageDescription(2)NSLocationWhenInUseUsageDescription这2个项目,所以我就用了NSLocationUsageDescription,结果就不能定位了.其实NSLocationUsageDescription这个项目在ios8就不用了! 下面简单地说一下用法:

IOS 开启定位功能 CLLocationManager 介绍-简单使用

iOS 中的定位功能,主要在 CoreLocation库中,需要用到位置管理器 CLLocationManager 来完成绝大多数事情. 要使用 CLLocationManager 首先需要一个对象~ 以及对它进行简单的设置,最后开启定位功能, 就开始定位了,定位成功或者失败后都会调用代理方法返回信息 1 CLLocationManager *manger; 2 3 manger = [[CLLocationManager alloc] init]; //初始化 4 5 manger.deleg

iOS地图定位(Map)

1.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如    导航:去任意陌生的地方    周边:找餐馆.找酒店.找银行.找电影院    手机软件:微信摇一摇.QQ附近的人.微博.支付宝等 在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这两大功能,必须基于两个框架进行开发    Map Kit :用于地图展示    Core Location :用于地理定位 地图定位(CoreLocation框架,地理编码与反地理编码)地图显示(MapKit框架)自定义大头针

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

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

iOS后台定位

iOS地理定位 app正常运行时可以,按下home键后app在后台也可以,双击home键后台杀死app也可以,甚至重启机器后也可以.(iOS 10 测试代码) 1)设置一些请求参数 就像正常的CLLocationManager一样申请权限以及后台更新请求 后台更新: plist请求地理位置(需要跑始终使用) 2)与往常一样的初始化定位管理器等步骤 CLLocationManager *locationMgr = [[CLLocationManager alloc]init]; [location

iOS后台定位实现

iOS后台定位实现 (2013-01-24 16:43:12) 工作中碰到一个定位的应用场景:app需要在后台运行,实时上传用户地理位置. 苹果对iOS的规范性在提升了app的品质的同时也带来了对开发者的限制.翻阅了各种官方文档和资料,得出结论如下: 1.实现后台定位有2种方式: standard location service(调用CLLocationManager的startUpdatingLocation) significant-change location service(调用CL

iOS 后台定位被拒注意事项

iOS 后台定位被拒的原因很简单就是没有达到苹果对后台定位的要求. 本地要求: 1.在plist文件中添加字段 "Privacy - Location Always Usage Description" ,值就填写在你的运用程序中使用后台定位的地方.如"高德地图会在搜索和导航服务中使用你的位置信息." 2.在plist文件中添加字段 "Required background modes" 数组类型添加一个值item 值的话就填 "App

iOS开发 定位服务与地图

概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的地方想要查找附近的酒店.超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品.总之,目前地图和定位功能已经大量引入到应用开发中.今天就和大家一起看一下iOS如何进行地图和定位开发. 定位 地图 定位 要实现地图.导航功能,往往需要先熟悉定位功能,在iO