// // ViewController.m // LocationDemo // // Created by LaughingZhong on 14/11/12. // Copyright (c) 2014年 Laughing. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize myLocationManager,myGeocoder,myLocation; - (void)dealloc { self.myLocationManager = nil; self.myLocation = nil; self.myGeocoder = nil; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. if ([CLLocationManager locationServicesEnabled]) { self.myLocationManager = [[CLLocationManager alloc] init]; [self.myLocationManager setDelegate:self]; self.myLocationManager.desiredAccuracy = kCLLocationAccuracyBest; self.myLocationManager.distanceFilter = 1.0; // [self.myLocationManager requestAlwaysAuthorization]; [self.myLocationManager requestWhenInUseAuthorization]; [self.myLocationManager startUpdatingLocation]; }else { NSLog(@"Location services are not enabled"); } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - #pragma mark CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { NSLog(@"locations is %@",locations); CLLocation *location = [locations lastObject]; self.myGeocoder = [[CLGeocoder alloc] init]; [self.myGeocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { if(error == nil && [placemarks count]>0) { CLPlacemark *placemark = [placemarks objectAtIndex:0]; NSLog(@"name = %@",placemark.name); NSLog(@"Country = %@", placemark.country); NSLog(@"Postal Code = %@", placemark.postalCode); NSLog(@"locality = %@", placemark.locality); NSLog(@"subLocality = %@", placemark.subLocality); NSLog(@"address = %@",placemark.name); NSLog(@"administrativeArea = %@",placemark.administrativeArea); NSLog(@"subAdministrativeArea = %@",placemark.subAdministrativeArea); NSLog(@"ISOcountryCode = %@",placemark.ISOcountryCode); NSLog(@"thoroughfare = %@", placemark.thoroughfare); NSLog(@"subThoroughfare = %@",placemark.subThoroughfare); [label setText:[NSString stringWithFormat:@"address is: %@",placemark.name]]; } else if(error==nil && [placemarks count]==0){ NSLog(@"No results were returned."); } else if(error != nil) { NSLog(@"An error occurred = %@", error); } }]; [self.myLocationManager stopUpdatingLocation]; } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"reverse geocoder error: %@", [error description]); } @end