标签:
1.首先导入CoreLocation框架 设置代理
CLLocationManagerDelegate
2.
- (void)initLocationManager
{
BOOL isEnable = [CLLocationManager locationServicesEnabled];
CGFloat verson = [[UIDevice currentDevice].systemVersion doubleValue];//float
if(isEnable) {
if(!_loactionManager){
_loactionManager = [[CLLocationManager alloc] init];
[_loactionManager setDelegate:self];
_loactionManager.desiredAccuracy = kCLLocationAccuracyBest;
_loactionManager.distanceFilter = 20.0;//每隔10米定位一次
if(verson > 8.0f){
[_loactionManager requestAlwaysAuthorization];
}
[_loactionManager startUpdatingLocation];
}
}
else {
Alert(@"温馨提示", @"当前设备定位功能未开启!,建议您到手机系统的[设置]->[隐私]->[定位服务]中打开定位服务,并允许“XXXX社区”使用定位服务" );
return;
}
}
3.要在pist文件中添加两个key值
NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription 这两个key值添加在这个目录下 Application requires iPhone environment
4.设置代理方法
#pragma mark 代理方法
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
CLLocation *currentLocation = [locations lastObject];
MJLog(@"currentLocation == %@",currentLocation);
// 创建位置
CLGeocoder *revGeo = [[CLGeocoder alloc] init];
[revGeo reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {
// 地理位置反编
if (!error && [placemarks count] > 0) {
NSDictionary *dict = [[placemarks objectAtIndex:0] addressDictionary];
_currentPosition = [dict objectForKey:@"City"];
MJLog(@"City address: %@",_currentPosition); }
else {
Alert(@"温馨提示", @"获取位置失败");
MJLog(@"ERROR: %@", error); }
}];
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
MJLog(@"error :%@",[error localizedDescription]);
}
标签:
原文地址:http://www.cnblogs.com/fantasy3588/p/4680429.html