iOS8 中使用定位功能必须先获取用户授权,无论CLLocationManager还是MapKit

前言:之前在iOS7下写过一个使用定位和地图的app demo,但升级iOS8后突然不能定位了。

解决方法如下:

1.在进入主页面之前,加上这句话,在程序刚运行时就让用户授权使用定位功能就好了。

//获取用户授权使用定位功能用的
@property (nonatomic, strong) CLLocationManager * mgr;

//懒加载
-(CLLocationManager *)mgr
{
    if (_mgr == nil) {
        _mgr = [[CLLocationManager alloc] init];
    }
    return _mgr;
}

//获得用户授权使用定位功能
[self.mgr requestWhenInUseAuthorization];

或者:[self.mgr requestAlwaysAuthorization];

2.最重要的一部分:需要在info.plist文件中增加一个新的key:NSLocationWhenInUseUsageDescription 或者 NSLocationAlwaysUsageDescription

stackoverflow中的回答如下:

你可能感兴趣的:(ios8,定位,地图,MapKit)