Métodos CLRegion obsoletos - como obter o raio?
-
21-12-2019 - |
Pergunta
estou usando o geocodeAddressString:completionHandler:
método, que retorna uma matriz de CLPlacemarks.Preciso obter latitude, longitude, nome mnemônico e raio.Embora seja fácil obter os 3 primeiros:
double lat = placemark.location.coordinate.latitude;
double lng = placemark.location.coordinate.longitude;
NSString *name = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)]
Não sei como obter o raio agora, pois placemark.region.radius
está obsoleto.Alguma idéia do que usar agora?Não consigo encontrar nada interessante o suficiente na documentação.
Solução
A nota de depreciação é para radius
em CLRegion
e diz para usar CLCircularRegion
em vez de.
Observe que CLCircularRegion
é uma subclasse de CLRegion
.
CLCircularRegion
tem as mesmas propriedades que CLRegion
tinha (incluindo radius
).
Isso importa se você é quem está criando um CLRegion
com a intenção de usar seu radius
propriedade.
No entanto, aqui, é o próprio SDK (especificamente o geocodeAddressString
método) que tem que se preocupar com isso e lidar com isso.
No iOS 7, esse método realmente lida com isso retornando um CLCircularRegion
para o marcador region
propriedade.
Essencialmente, você não precisa fazer ou alterar nada aqui, pois os nomes das propriedades são idênticos.
Este código funcionará do iOS 4 ao iOS 7:
NSLog(@"radius=%f", placemark.region.radius);