Я хочу узнать местоположение фотографий с помощью reverseGeocodeLocation. Я использую функцию нижеПолучить имя места от reverseGeocodeLocation
@interface GalleryPhotosViewController()
{
CLPlacemark *placemark;
}
@end
-(NSString *)getLocation:(CLLocation *)locations{
CLGeocoder *geocoder = [CLGeocoder new];
[geocoder reverseGeocodeLocation:locations completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
placemark = [placemarks lastObject];
}];
return placemark.name;
}
Я не мог получить это имя при вызове функции, но получаю это после выполнения других частей кода. Я знаю, что reverseGeocodeLocation имеет блок завершения, он передается в другой поток, когда выполнение достигает его. Но при вызове функции мне нужно получить это имя. Я просматриваю множество решений, но не могу решить свою проблему. Я хочу получить имя места в currentLocation.
CLLocation *loc = asset.location;
NSString *currentLocation = [self getLocation:loc];
Где я должен изменить свой код. Пожалуйста помоги.
печать 'placemark.name' ниже' lacemark = [меткам lastObject], линии (в обработчике завершения) 'и скажите мне, он будет дает никакого значения или нет ! – Lion
NSLog (@ "addressDictionary% @", placemark.addressDictionary); его адрес печати ваших координат. in side [geocoder reverseGeocodeLocation: места завершенияHandler:^(NSArray * _Невершимые метки, NSError * _Удальная ошибка) { placemark = [placemarks lastObject]; }]; –
Правильно, но я хочу использовать значение вне блока для каждого вызова метода. @Lion – sazid008