You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.8 KiB

//
// XHLocationHelper.m
// MessageDisplayExample
//
// Created by HUAJIE-1 on 14-5-8.
// Copyright (c) 2014年 曾宪华 开发团队(http://iyilunba.com ) 本人QQ:543413507 本人QQ群(142557668). All rights reserved.
//
#import "XHLocationHelper.h"
@interface XHLocationHelper () <CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *locationManager;
@property (nonatomic, copy) DidGetGeolocationsCompledBlock didGetGeolocationsCompledBlock;
@end
@implementation XHLocationHelper
- (void)setup {
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 5.0;
}
- (id)init {
self = [super init];
if (self) {
[self setup];
}
return self;
}
- (void)dealloc {
self.locationManager.delegate = nil;
self.locationManager = nil;
self.didGetGeolocationsCompledBlock = nil;
}
- (void)getCurrentGeolocationsCompled:(DidGetGeolocationsCompledBlock)compled {
self.didGetGeolocationsCompledBlock = compled;
[self.locationManager startUpdatingLocation];
}
#pragma mark - CLLocationManager Delegate
// 代理方法实现
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
CLGeocoder* geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:newLocation completionHandler:
^(NSArray* placemarks, NSError* error) {
if (self.didGetGeolocationsCompledBlock) {
self.didGetGeolocationsCompledBlock(placemarks);
}
}];
[manager stopUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
[manager stopUpdatingLocation];
}
@end