2014-10-01 12 views
6

Dato che il codiceCLLocationDegrees a variabile String a Swift

var latitude = userLocation.coordinate.latitude 

restituisce un oggetto CLLocationDegrees, come posso memorizzare il valore in una variabile in modo che posso applicare come il testo di un'etichetta.

Posso stampare la variabile sulla console senza problemi, ma ovviamente questo non mi aiuta troppo!

Guardando attraverso le preziose opzioni attraverso il completamento automatico vedo che c'è una descrizione;

var latitude = userLocation.coordinate.latitude.description 

Ma questo mi sta restituendo nulla?

Grazie

+0

https://stackoverflow.com/questions/29466405/how-do-i-convert-corelocation-coordinates-to-a- stringa –

risposta

-4

È possibile trasformarlo in una stringa utilizzando questo codice:

var oneString = String(userLocation.coordinate.latitude) 
+0

Questo non funziona e dà un errore di init. – Deekor

+0

Funziona bene. Assicurati solo di non passare un optional, che spesso è la posizione utente. – Andy

22

dal CLLocationDegrees è solo un typedef per Double, si può facilmente assegnarlo a un var string, vale a dire:

var latitudeText:String = "\(userLocation.coordinate.latitude)" 
+0

nota: il tipo esplicon definiton è solo opzionale, l'assegnazione funziona senza di questo – hedzs

+0

Questa è la soluzione più semplice in questa pagina. Funziona anche con: 'var lat =" \ (result.location.coordinate.latitude) "' – Deekor

+0

Questo ha funzionato per me (y) – sanjana

5
let latitudeText = String(format: "%f", userLocation.coordinate.latitude) 

Impostare la paramater formato alle vostre esigenze.

6

niente qui ha funzionato per me. Il più vicino che ho ottenuto è "Opzionale (37.8)" per un valore di latitudine, penso perché CLLocationCoordinate2D è un parametro di classe facoltativo. Ecco quello che ho finito per fare per ottenere una stringa semplice:

let numLat = NSNumber(double: (self.myLocation?.latitude)! as Double) 
let stLat:String = numLat.stringValue 
2
var lat = userLocation.coordinate.latitude 
var latData = String(stringInterpolationSegment: lat) 
+3

In genere, le risposte sono molto più utili se includono una spiegazione di ciò che il codice è destinato a fare e perché questo risolve il problema. – IKavanagh