位置确实更新呼叫三次,位置确实失败,错误即使没有数据接收也没有呼叫 如何避免调用位置确实更新三次,并且在没有数据接收的情况下调用失败但错误?
我不接受互联网连接
答案 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);
}];
}