2013-11-25 12 views
7

Ho aggiornato la mia app per utilizzare la versione 1.6 dell'API di Google Maps per iOS. Ora mi dimostra che tre metodi importanti GMSMapView sono obsoleti:Metodi di GMSMapView deprecati nella versione 1.6

'markers' is deprecated 
'polylines' is deprecated 
'groundOverlays' is deprecated 

In un primo momento ho pensato che potrebbe essere un problema da parte mia perché non v'è alcuna menzione di questo nella documentazione di Google, ma poi ho visto il file di intestazione e ho notato che essi sono in realtà deprecati, ma non specificano un metodo alternativo per utilizzare al fine di ottenere la stessa cosa:

- (NSArray *)markers __GMS_AVAILABLE_BUT_DEPRECATED; 
- (NSArray *)groundOverlays __GMS_AVAILABLE_BUT_DEPRECATED; 
- (NSArray *)polylines __GMS_AVAILABLE_BUT_DEPRECATED; 

qualcuno mi può puntare a come fare questo senza usare metodi deprecati? Grazie!

EDIT: Ho appena trovato un metodo in cui si può fare [mapView clear] che eliminerebbe tutti gli indicatori e polilinee dalla mappa, non v'è alcun modo per rimuovere solo tutte le polilinee senza rimuovere i marcatori?

risposta

5

Super strano che non l'hanno menzionato nei documenti. Nel codice sorgente, menzionano che lo porteranno in una versione futura:

NOTA: in 1.2 dell'SDK di Google Maps per iOS, questi metodi sono deprecati. Potrebbero non apparire nelle versioni successive dell'SDK. Invece di utilizzare questi metodi, ti suggeriamo di mantenere i tuoi riferimenti alle sovrapposizioni che hai aggiunto a GMSMapView.

Sembra che si stiano spostando l'onere su di noi come sviluppatori per mantenere i riferimenti alle sovrapposizioni aggiunte. Lo faccio nella mia app creando un NSMutableArray di addedMarkers. Ogni volta che aggiungo un indicatore alla mappa, viene aggiunto all'array.

Suppongo che si possa fare lo stesso con le polilinee e gli overlay a terra. Ognuno di questi è di classe, quindi non dovrebbe essere difficile raggrupparli e identificarli in seguito, se necessario.

Problemi correlati