iOS 8 實現獲取當前定位信息

jopen 9年前發布 | 1K 次閱讀 Objective-C IOS

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!