Устаревшие методы CLRegion - как получить radius?
-
21-12-2019 - |
Вопрос
Я использую geocodeAddressString:completionHandler:
метод, который возвращает массив CLPlacemarks.Я должен получить широту, долготу, мнемоническое название и радиус.В то время как получить первые 3 легко:
double lat = placemark.location.coordinate.latitude;
double lng = placemark.location.coordinate.longitude;
NSString *name = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)]
Я не знаю, как получить радиус сейчас, так как placemark.region.radius
является устаревшим.Есть идеи, что использовать сейчас вместо этого?Я не могу найти ничего достаточно интересного в документации.
Решение
Примечание об отказе предназначено для radius
в CLRegion
и там написано использовать CLCircularRegion
вместо.
Обратите внимание, что CLCircularRegion
является подклассом CLRegion
.
CLCircularRegion
обладает теми же свойствами, что CLRegion
имел (включая radius
).
Это имеет значение, если ты являются ли те, кто создает CLRegion
с намерением использовать его radius
собственность.
Однако здесь речь идет о самом SDK (в частности, о geocodeAddressString
метод), который должен беспокоиться об этом и справляться с этим.
В iOS 7 этот метод действительно обрабатывает это, возвращая CLCircularRegion
для метки region
собственность.
По сути, вам не нужно ничего делать или изменять здесь, поскольку имена свойств идентичны.
Этот код будет работать с iOS 4 по iOS 7:
NSLog(@"radius=%f", placemark.region.radius);