iOS8环境下地图定位需要注意的地方

本文介绍了在iOS8中如何正确地申请并处理定位服务授权。包括在plist文件中添加必要的键值对、使用CLLocationManager请求不同类型的授权、确保模拟器和实际设备上的定位服务已启用、以及如何通过实现didChangeAuthorizationStatus方法来处理授权状态的变化。

1.iOS8的定位服务需要用户取申请系统的授权

即需要在plist文件中增加两个string类型的键值对:NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDescription。同时在开始定位之前必须调用申请授权的方法:

CLLocationManager  *locationManager = [[CLLocationManager alloc]init];

    locationManager.delegate = self;

[locationManager requestAlwaysAuthorization];

[locationManager requestWhenInUseAuthorization];

    locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    locationManager.distanceFilter = kCLDistanceFilterNone;

    [locationManager startUpdatingLocation];

requestAlwaysAuthorization和requestWhenInUseAuthorization两个方法即是在申请系统的授权。

2.实机运行时记得要在系统设置中打开手机的定位服务,如果时模拟器的话除了打开模拟器设置中的定位服务外还需要在edit schema 中设置模拟器的默认位置。

3.如果进入了失败的委托方法,可以根据error的code值从

CLError.h文件中查对应的原因

4.为稳妥起见,CLLocationManager的didChangeAuthorizationStatus方法务必实现,代码如下

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

{

    switch (status) {

        case kCLAuthorizationStatusNotDetermined:

            if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {

                [locationManager requestAlwaysAuthorization];

            }

            break;

        default:

            break;

    } 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值