如何避免调用位置确实更新了三次

时间:2013-10-24 05:22:26

标签: iphone map

位置确实更新呼叫三次,位置确实失败,错误即使没有数据接收也没有呼叫 如何避免调用位置确实更新三次,并且在没有数据接收的情况下调用失败但错误


  

我不接受互联网连接

3 个答案:

答案 0 :(得分:2)

  

如何避免三次调用位置确实更新?

对于ios位置更新代表可能会调用几次取决于速度而不是三次 所以使用bool变量来表示

  

如果没有互联网连接,如何调用失败并显示错误?

您已使用自己设置位置管理员代理

答案 1 :(得分:0)

  

如何避免三次调用位置更新?

在此方法中将位置管理器的委托设置为nil。

  

如果没有互联网连接,如何调用失败并显示错误?

为什么要打电话?地点可能来自三个来源:GPS无线电,蜂窝和WiFi,但不是来自互联网。

答案 2 :(得分:0)

LocationManager didUpdateToLocation始终检查位置的变化。如果它在多个位置,它将多次调用。你可以用不同的方式避免它。但如果用户更改其当前位置,则不会更新位置。

您可以使用此代码来获取位置并继续操作。

- (无效)的getLocation {

locationManager = [[CLLocationManager alloc] init] ;
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;

// [locationManager startUpdatingLocation];评论以避免多次通话或您可以说更新当前位置     CLLocation * newLocation = [locationManager location];     CLGeocoder * geoCoder = [[CLGeocoder alloc] init];     [geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray * placemarks,NSError * error){

    NSString * location = ([placemarks count] > 0) ? [[placemarks objectAtIndex:0] locality] : @"Not Found";
    NSLog(@"location:%@",location);
    NSLog(@"lat:%f",locationManager.location.coordinate.latitude);
    NSLog(@"long:%f",locationManager.location.coordinate.longitude);
}];

}