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

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;

    } 

}

猜你喜欢

转载自blog.csdn.net/u010843426/article/details/40112541