iOS8及以上版本地图定位

在IOS8中定位功能新增了两个方法:

①- (void)requestWhenInUseAuthorization; //使用应用的时候定位
②- (void)requestAlwaysAuthorization; //未使用应用的时候也可以定位
这两个新增的方法导致在iOS8以下版本运行会出现定位功能无法正常使用的问题!

正确的在iOS8及以上版本定位的方法:

1.在Info.plist表里面添加两个key(自定义提示用户授权使用地理定位功能时的提示语)

①NSLocationWhenInUseUsageDescription(该key对应的value如下图,如果不想自定义,可以为空)


IMG_2001.png

②NSLocationAlwaysUsageDescription(同上)


IMG_2002.png

2.在代码中启动跟踪定位(startUpdatingLocation)前,调用以下方法:

①if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
        [locationManager requestWhenInUseAuthorization];
}
IMG_2003.PNG
②if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
        [locationManager requestAlwaysAuthorization];
}
IMG_2004.PNG

注:上面的①②在实际项目中二选一即可。

推荐阅读更多精彩内容