为了账号安全,请及时绑定邮箱和手机立即绑定

如何从IOS中的用户获取当前位置?

如何从IOS中的用户获取当前位置?

iOS
当年话下 2019-07-26 14:14:31
如何从IOS中的用户获取当前位置?
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞


在IOS 6中,

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

不受欢迎。

使用以下代码代替

- (void)locationManager:(CLLocationManager *)manager
     didUpdateLocations:(NSArray *)locations {
    CLLocation *location = [locations lastObject];
    NSLog(@"lat%f - lon%f", location.coordinate.latitude, location.coordinate.longitude);}

对于IOS 6~8,上述方法仍然是必要的,但您必须处理授权。

_locationManager = [CLLocationManager new];_locationManager.delegate = self;_locationManager.distanceFilter = kCLDistanceFilterNone;_locationManager.desiredAccuracy = kCLLocationAccuracyBest;if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 &&
    [CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedWhenInUse    //[CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedAlways
   ) {
     // Will open an confirm dialog to get user's approval 
    [_locationManager requestWhenInUseAuthorization]; 
    //[_locationManager requestAlwaysAuthorization];} else {
    [_locationManager startUpdatingLocation]; //Will update location immediately }

这是处理用户授权的委托方法

#pragma mark - CLLocationManagerDelegate- (void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
    switch (status) {
    case kCLAuthorizationStatusNotDetermined: {
        NSLog(@"User still thinking..");
    } break;
    case kCLAuthorizationStatusDenied: {
        NSLog(@"User hates you");
    } break;
    case kCLAuthorizationStatusAuthorizedWhenInUse:
    case kCLAuthorizationStatusAuthorizedAlways: {
        [_locationManager startUpdatingLocation]; //Will update location immediately
    } break;
    default:
        break;
    }}




查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 331 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信