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