#import@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];}