Получение широты/долготы из анализа PFGeoPoint

В настоящее время у меня есть PFGeoPoint на сервере Parse, который я могу успешно получить, выполнив следующие действия (в Swift):

let geo = listingObject?.objectForKey("geo")
// <PFGeoPoint: 0x7ff37d184840, latitude: 51.510005, longitude: -0.128493>

Что я сейчас хочу сделать, так это получить широту и долготу из этого в свои собственные переменные.

Когда я создаю аннотацию карты, например, работает следующее:

let anno = mapAnnotation(coordinate: CLLocationCoordinate2D(latitude: (geo?.latitude)!, longitude: (geo?.longitude)!))

Однако это вызывает ошибку:

let latitude = geo?.latitude
// Ambiguous use of 'latitude'

Может ли кто-нибудь указать мне в правильном направлении?


person dylankbuckley    schedule 04.09.2016    source источник


Ответы (1)


objectForKey возвращает AnyObject, компилятор не знает, что это тип PFGeoPoint. Решение состоит в том, чтобы привести значение к правильному типу.

А при использовании необязательных привязок можно избавиться от всех пометок ?!

if let geo = listingObject?.objectForKey("geo") as? PFGeoPoint {
    let anno = mapAnnotation(coordinate: CLLocationCoordinate2D(latitude: geo.latitude, longitude: geo.longitude)
}
person vadian    schedule 04.09.2016