Я пытаюсь получить свое текущее местоположение и обратный код GeoCode для адреса, но я продолжаю получать свое местоположение до 00000.00 и широты 00000.00 Вот мой код
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
CLGeocoder *ceo = [[CLGeocoder alloc]init];
currentLocation = [[CLLocation alloc]initWithLatitude:currentLocation.coordinate.latitude longitude:currentLocation.coordinate.longitude]; //insert your coordinates
NSLog(@"loc:%@",currentLocation);
[ceo reverseGeocodeLocation:currentLocation
completionHandler:^(NSArray *placemarks, NSError *error) {
CLPlacemark *placemark = [placemarks objectAtIndex:0];
if (placemark) {
NSString *strString =placemark.name;
NSLog(@"strString:%@",strString);
NSString *midstring = [strString stringByAppendingString:@","];
if (placemark.postalCode == nil) {
self->postalcodeString = @"00000";
}
else{
self->postalcodeString = placemark.postalCode;
}
self->combineString = [midstring stringByAppendingString:self->postalcodeString];
NSLog(@"combineString:%@",self.combineString);
}
startUpdatingLocation
, поскольку в это время менеджер местоположения может еще не иметь доступной информации. - person Cristik   schedule 11.02.2021code
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *location = [locations lastObject]; NSLog(@lat%f - lon%f, location.coordinate.latitude, location.coordinate.longitude); }code
но когда я сравнил его с адресами в моих контактах, он просто продолжал зацикливаться, поэтому я добавилcode
[locationManager stopUpdatingLocation];code
и это сработало, но немного громоздко. жаль, что я не мог просто получить свое текущее местоположение один раз, но это работает - person user1114881   schedule 12.02.2021