经常碰到需要获取当前地址的需求,iOS原生方法就可以解决。
导入头文件
#import <CoreLocation/CoreLocation.h>
(nonatomic, strong) CLLocationManager *lcManager
开始请求定位
if ([CLLocationManager locationServicesEnabled]) { // 创建位置管理者对象 self.lcManager = [[CLLocationManager alloc] init];self.lcManager.delegate = self; // 设置代理 // 设置定位距离过滤参数 (当本次定位和上次定位之间的距离大于或等于这个值时,调用代理方法) self.lcManager.distanceFilter = 100;self.lcManager.desiredAccuracy = kCLLocationAccuracyBest; // 设置定位精度(精度越高越耗电)[self.lcManager requestWhenInUseAuthorization];//这句很关键!!![self.lcManager startUpdatingLocation]; // 开始更新位置}else{ //没开启,做其他提醒 }
代理:CLLocationManagerDelegate
代理方法: `
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{NSLog(@"定位到了");CLGeocoder *geocoder = [[CLGeocoder alloc]init];[geocoder reverseGeocodeLocation:[locations firstObject] completionHandler:^(NSArray*_Nullable placemarks, NSError * _Nullable error) { CLPlacemark *place = [placemarks firstObject]; //place包含了地理信息}];}-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{NSLog(@"获取定位失败");}