IT虾米网

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

qq123 2018年06月23日 手机开发 1170 0
// 
//  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

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!