微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

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

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐