2014-10-01 4 views
6

Da der CodeCLLocationDegrees zu String-Variable in Swift

var latitude = userLocation.coordinate.latitude 

ein CLLocationDegrees Objekt zurückgibt, wie kann ich den Wert speichern, in einer Variablen so, dass ich es als Text eines Labels anwenden können.

Ich kann die Variable ohne Probleme auf die Konsole drucken, aber offensichtlich hilft mir das nicht zu viel!

Durch die wertvollen Optionen durch die Autovervollständigung schauend, sehe ich, dass es eine Beschreibung gibt;

var latitude = userLocation.coordinate.latitude.description 

Aber das gibt mir null zurück?

Dank

+0

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

Antwort

-4

Sie können es in einen String drehen Sie diesen Code verwenden:

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

Dies funktioniert nicht und gibt einen Initialisierungsfehler. – Deekor

+0

Das funktioniert gut. Stellen Sie nur sicher, dass Sie kein optionales übergeben, welches userLocation oft ist. – Andy

22

seit CLLocationDegrees nur ein typedef für Double ist, können Sie es leicht in einen String var zuweisen, das heißt:

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

Hinweis: Die explizite Typdefinition ist nur optional, die Zuweisung funktioniert ohne sie – hedzs

+0

Dies ist die einfachste Lösung auf dieser Seite. Funktioniert auch mit: 'var lat =" \ (result.location.coordinate.latitude) "' – Deekor

+0

Dies funktionierte für mich (y) – sanjana

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

das Format Paramater auf Ihre Bedürfnisse einstellen.

6

hier nichts für mich gearbeitet. Der nächste, den ich bekam, war "Optional (37.8)" für einen Breitengradwert, ich denke, weil CLLocationCoordinate2D ein optionaler Klassenparameter ist. Hier ist, was ich tun, am Ende eine einfache Zeichenfolge zu erhalten:

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

Im Allgemeinen sind die Antworten viel hilfreicher, wenn sie eine Erklärung enthalten, was der Code tun soll und warum das das Problem löst. – IKavanagh

Verwandte Themen