iOS 8 实现获取当前定位信息

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

//
//  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