iOS8以前与iOS8使用CoreLocation定位

iOS8以前使用CoreLocation定位1、首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import <CoreLocation/CoreLocation.h>1

    @property (nonatomic, strong) CLLocationManager  *locationManager;

2、初始化CLLocationManager并开始定位 -(CLLocationManager *)locationManager{     #warning 定位服务不可用,直接返回空  if (![CLLocationManager locationServicesEnabled]) return nil;        if (!_locationManager) {        //创建定位者        self.locationManager = [[CLLocationManager alloc]init];        //设置代理        self.locationManager.delegate = self;    }    return _locationManager;}

- (void)viewDidLoad {[super viewDidLoad];    self.view.backgroundColor = [UIColor whiteColor];

    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;    self.locationManager.distanceFilter = 10;    [self.locationManager startUpdatingLocation];

}

3、实现CLLocationManagerDelegate的代理方法(1)获取到位置数据,返回的是一个CLLocation的数组,一般使用其中的一个

    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{    CLLocation *currLocation = [locations lastObject];    NSLog(@"经度=%f 纬度=%f 高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);}

(2)获取用户位置数据失败的回调方法,在此通知用户

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{    if ([error code] == kCLErrorDenied)    {        //访问被拒绝    }    if ([error code] == kCLErrorLocationUnknown) {        //无法获取位置信息    }}

4、在viewWillDisappear关闭定位

    - (void)viewWillDisappear:(BOOL)animated{    [super viewWillDisappear:animated];    [_locationManager stopUpdatingLocation];}

iOS8中使用CoreLocation定位1、在使用CoreLocation前需要调用如下函数【iOS8专用】:iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:(1)始终允许访问位置信息- (void)requestAlwaysAuthorization;(2)使用应用程序期间允许访问位置数据- (void)requestWhenInUseAuthorization;示例如下:

- (void)viewDidLoad {[super viewDidLoad];    self.view.backgroundColor = [UIColor whiteColor];

       self.locMgr.desiredAccuracy = kCLLocationAccuracyBest;    self.locMgr.distanceFilter = 10;       #warning 定位服务,ios8以后添加这句    [self.locMgr requestAlwaysAuthorization];        [self.locMgr startUpdatingLocation];

}

2、在Info.plist文件中添加如下配置:(1)NSLocationAlwaysUsageDescription(2)NSLocationWhenInUseUsageDescription
时间: 2024-08-02 09:43:56

iOS8以前与iOS8使用CoreLocation定位的相关文章

iOS8中使用CoreLocation定位

在iOS8中,苹果已经强制开发者在请求定位服务时获得用户的授权,此外iOS状态栏中还有指示图标,提示用户当前应用是否正在使用定位服务.另外在iOS8中,苹果进一步改善了定位服务,让开发者请求定位服务时需要向用户提供更多的透明.此外,iOS8中还支持让应用开发者调用全新的"访问监控"功能,当用户允许后应用才能获得更多的定位数据. iOS8以前使用CoreLocation定位 1.首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.frame

iOS8中使用CoreLocation定位[转]

本文转自:http://blog.devzeng.com/blog/ios8-corelocation-framework.html iOS8以前使用CoreLocation定位 1.首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import <CoreLocation/CoreLocation.h> @property (nonatomic, strong) CLLocationManager *locationM

第九章:使用CoreLocation定位

CoreLocation框架(CoreLocation.framework)可用于定位设备当前的经纬度,通过该框架,应用程序可通过附近的蜂窝基站.WIFI信号或者GPS等信息计算用户位置. iOS SDK提供了CLLocationManager.CLLocationManagerDelegate来处理设备的定位信息,包括获取设备的方向以及进行方向检测等.其中CLLocationManager是整个CoreLocation框架的核心,定位.方向检测.区域检测等都由该API完成:而CLLocatio

iOS-----使用CoreLocation定位

使用CoreLocation定位 CoreLocation框架 (CoreLocation.framework)可用于定位设备当前经纬度, 通过该框架, 应用程序可通过附近的蜂窝基站\WIFI信号 或者GPS等信息计算用户位置. iOS SDK提供了CLLocationManager.CLLocationManagerDelegate来处理设备的定位信息,包括获取设备的方向以及进行方向检测等. 其中CLLocationManager是整个CoreLocation框架的核心,定位.方向检测.区域检

ios8 - CoreLocation定位服务的变化

在iOS8开发中,发现一个CoreLocation的使用问题,执行操作之后,不会调用到定位之后的delegate方法中. 根据文档,需要在使用CoreLocation前调用方法: [locationmanager requestAlwaysAuthorization]; [locationmanager requestWhenInUseAuthorization]; 并在Info.plist中加入两个字段(需手动输入添加,无选择项) NSLocationAlwaysUsageDescriptio

iOS8以上使用CoreLocation定位

1.在使用CoreLocation前需要调用如下函数 iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法: (1)始终允许访问位置信息 - (void)requestAlwaysAuthorization; (2)使用应用程序期间允许访问位置数据 - (void)requestWhenInUseAuthorization; 示例如下: self.locationManager = [[CLLocationManager alloc]ini

IOS8下,百度地图无法定位解决办法

最近项目中用到了百度地图定位 发现IOS8+的真机测试并没有办法定位 应该是百度自己的问题 1. 在info.plist中加入以下两个属性:NSLocationAlwaysUsageDescription=YESNSLocationWhenInUseUsageDescription=YES 2. 在调用百度地图定位之前,加上如下代码: 1 if ([[UIDevice currentDevice].systemVersion floatValue] >= 8) { 2 3 CLLocationM

iOS8 高德地图SDK MAMapView无法定位的问题

在iOS8的设备上,使用高德地图SDK你会发现MAMapView里的回调位置是空的. -(void)mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updatingLocation:(BOOL)updatingLocation { CLLocation *currentLocation = userLocation.location; if (currentLocation) { }

解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题

关键点:- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status代理方法 iOS7环境下当APP首次调用startUpdatingLocation方法开启定位服务时,系统会自动将该APP的定位子选项加入设置中的定位权限列表,并弹框提示用户是否为该APP定位服务授权. 可是在iOS8环境下,使用定位服务的方式较之前版本发生改变,调用s