Как преобразовать CLLocationCoordinate2D в строковое значение? [Дубликат]

Используйте функцию встроенного getattr , чтобы получить атрибут объекта по имени. Измените имя по мере необходимости.

obj.spam = 'eggs'
name = 'spam'
getattr(obj, name)  # returns 'eggs'

4
задан Leo Dabus 12 June 2015 в 09:49
поделиться

3 ответа

Таким образом вы можете сохранить местоположения на NSUserDefaults:

//First Convert it to NSNumber.
let lat : NSNumber = NSNumber(double: Location.latitude)
let lng : NSNumber = NSNumber(double: Location.longitude)

//Store it into Dictionary
let locationDict = ["lat": lat, "lng": lng]

//Store that Dictionary into NSUserDefaults
NSUserDefaults.standardUserDefaults().setObject(locationDict, forKey: "Location")

После этого вы можете получить к нему доступ следующим образом:

//Access that stored Values
let userLoc = NSUserDefaults.standardUserDefaults().objectForKey("Location") as! [String : NSNumber]

//Get user location from that Dictionary
let userLat = userLoc["lat"]
let userLng = userLoc["lng"]

var Annotation = MKPointAnnotation()

Annotation.coordinate.latitude = userLat as! CLLocationDegrees  //Convert NSNumber to CLLocationDegrees
Annotation.coordinate.longitude = userLng as! CLLocationDegrees //Convert NSNumber to CLLocationDegrees

UPDATE:

ЗДЕСЬ - ваш пример проекта.

7
ответ дан Dharmesh Kheni 21 August 2018 в 07:30
поделиться
  • 1
    Поэтому по какой-то причине всякий раз, когда я нажимаю кнопку на другом контроллере представления, чтобы сохранить местоположение, а segue выполняется на другом контроллере представления, который отображает представление карты, аннотация не отображается. – Trip Phillips 12 June 2015 в 18:31

Вы можете хранить широту или долготу (или как в словаре, так и в кортеже). Способ обернуть их в String:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    var locValue:CLLocationCoordinate2D = manager.location!.coordinate        
    var lat : String = locValue.latitude.description
    var lng : String = locValue.longitude.description
    //do whatever you want with lat and lng
}
0
ответ дан Darius Miliauskas 21 August 2018 в 07:30
поделиться
extension CLLocationCoordinate2D:Printable
{
    init(coords : String)
    {
        var fullNameArr = split(coords) {$0 == ";"}
        self.latitude = NSNumberFormatter().numberFromString(fullNameArr[0])!.doubleValue
        self.longitude = (fullNameArr.count > 1) ? NSNumberFormatter().numberFromString(fullNameArr[1])!.doubleValue : 0
    }

    public var description : String
    {
        return "\(self.latitude);\(self.longitude)"
    }
}

Затем используйте как в вашем примере кода:


    var coord = CLLocationCoordinate2D(latitude: 3.2, longitude: 6.4)
    NSUserDefaults.standardUserDefaults().setObject(coord.description, forKey: "Location")
    var readedCoords = CLLocationCoordinate2D(coords: NSUserDefaults.standardUserDefaults().stringForKey("Location")!)
2
ответ дан Romain TAILLANDIER 21 August 2018 в 07:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: