您的位置:首页 > 移动开发 > IOS开发

iOS 8 定位

2015-07-27 16:11 567 查看
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]);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: