前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 8 实现获取当前定位信息

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

原创
作者头像
大师级码师
修改2021-10-29 10:26:56
4380
修改2021-10-29 10:26:56
举报
文章被收录于专栏:大师级码师
代码语言:javascript
复制
//
//  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> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档