iOS下获取用户当前位置的信息

#import <MapKit/MKMapView.h>

@interface ViewController (){
    CLLocationManager *_currentLoaction;
    CLGeocoder *_geocoder;
    CLPlacemark *_placeMark;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    _geocoder = [[CLGeocoder alloc] init];
    
    _currentLoaction = [[CLLocationManager alloc] init];
    _currentLoaction.delegate = self;
    [_currentLoaction startUpdatingLocation]; 
}

#pragma mark - Location
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    NSLog(@"locError:%@", error);
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    CLLocationCoordinate2D locat = [newLocation coordinate];
    double lattitude = locat.latitude;
    double longitude = locat.longitude;
    CLGeocodeCompletionHandler handler = ^(NSArray *placemark, NSError *error)
    {
        for (CLPlacemark *mark in placemark) {
            NSMutableDictionary *area_dic = [mark addressDictionary];
            [area_dic setValue:[NSString stringWithFormat:@"%f", lattitude] forKeyPath:@"lattitude"];
            [area_dic setValue:[NSString stringWithFormat:@"%f", longitude] forKeyPath:@"longitude"];
            NSLog(@"area_dic is %@", area_dic);
            
            NSArray *array = [area_dic objectForKey:@"FormattedAddressLines"];
            NSString *address = [area_dic objectForKey:@"FormattedAddressLines"];
            NSLog(@"array is %@", array);
            address = [array objectAtIndex:0];
            NSLog(@"address is %@", address);
            address = [area_dic objectForKey:@"City"];
            NSLog(@"City is %@", address);
        }
    };
    [_geocoder reverseGeocodeLocation:newLocation completionHandler:handler];
}
原文地址:https://www.cnblogs.com/JayK/p/4067499.html