Metodi CLRegion deprecati: come ottenere il raggio?
-
21-12-2019 - |
Domanda
Sto usando il geocodeAddressString:completionHandler:
metodo, che restituisce un array di CLPlacemarks.Devo ottenere latitudine, longitudine, nome mnemonico e raggio.Mentre ottenere i primi 3 è facile:
double lat = placemark.location.coordinate.latitude;
double lng = placemark.location.coordinate.longitude;
NSString *name = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)]
Non so come ottenere il raggio adesso, come placemark.region.radius
è deprecato.Qualche idea su cosa usare adesso invece?Non riesco a trovare nulla di abbastanza interessante nella documentazione.
Soluzione
La nota di deprecazione è per radius
In CLRegion
e dice di usare CLCircularRegion
Invece.
Notare che CLCircularRegion
è una sottoclasse di CLRegion
.
CLCircularRegion
ha le stesse proprietà che CLRegion
avuto (compreso radius
).
Questo è importante se Voi sono quelli che creano a CLRegion
con l'intenzione di utilizzarlo radius
proprietà.
Tuttavia, in questo caso è l'SDK stesso (in particolare il geocodeAddressString
metodo) che deve preoccuparsene e gestirlo.
In iOS 7, questo metodo lo gestisce effettivamente restituendo a CLCircularRegion
per il segnaposto region
proprietà.
In sostanza, non devi fare o modificare nulla qui poiché i nomi delle proprietà sono identici.
Questo codice funzionerà da iOS 4 a iOS 7:
NSLog(@"radius=%f", placemark.region.radius);