首页 > 代码库 > iOS8定位问题解决方案

iOS8定位问题解决方案

1、修改info

  新增Key:NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription,这两个Key的值将分别用于描述应用程序始终使用和使用期间使用定位的说明,这些说明将显示在用户设置中。
info新增键值对如下



应用程序说明参见微信:


2、CLLocationManager初始化

iOS8CLLocationManager新增实例方法requestWhenInUseAuthorization和requestAlwaysAuthorization,需要在初始化时根据需要调用。

if([CLLocationManager locationServicesEnabled]){
        self.locationManage = [[[CLLocationManager alloc] init] autorelease];
        self.locationManage.delegate = self;
        self.locationManage.distanceFilter = 200;
        self.locationManage.desiredAccuracy = kCLLocationAccuracyBestForNavigation;//kCLLocationAccuracyBest;
        if (SYSTEM_VERSION >= 8.0) {
            //使用期间
            [self.locationManage requestWhenInUseAuthorization];
            //始终
            //or [self.locationManage requestAlwaysAuthorization]
        }
    }

3、代理

新增下面的代理方法:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
    switch (status) {
        case kCLAuthorizationStatusNotDetermined:
            if ([self.locationManage respondsToSelector:@selector(requestAlwaysAuthorization)])
            {
                [self.locationManage requestWhenInUseAuthorization];
            }
            break;
        default:
        break;
    }

}




iOS8定位问题解决方案