как получить местоположение из PFGeopoint - (Parse.com и Swift) и показать его на карте с Xcode 6.2

Есть некоторые ответы на этот вопрос, но они связаны с различными проблемами и все в объективе-c. Я сохраняю в разборе класса «Позиция» позиции пользователей с помощью этого:

var locationManager = CLLocationManager()

var lat = locationManager.location.coordinate.latitude
var lon = locationManager.location.coordinate.longitude

let myGeoPoint = PFGeoPoint(latitude: lat, longitude:lon)
let myParseId = PFUser.currentUser().objectId //PFUser.currentUser().objectId

println("****** this is my geoPoint: \(myGeoPoint)")

func sendPosition(userOfPosition: User) {

let takePosition = PFObject(className: "Position")

 takePosition.setObject(myParseId, forKey: "who") //who
 takePosition.setObject(myGeoPoint, forKey: "where")
                                        takePosition.saveInBackgroundWithBlock(nil)

                                }


  sendPosition(currentUser()!)

так что это мой результат:

тогда я хочу показать их на карте, но как? не понимаю, как получить широту и долготу из столбца «где», код ниже не работает:

   import UIKit
    import MapKit

    class MapViewController: UIViewController {


    @IBOutlet weak var mapView: MKMapView!

    var locationManager : CLLocationManager!


    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.



        var locationManager = CLLocationManager()

        var lat = locationManager.location.coordinate.latitude
        var lon = locationManager.location.coordinate.longitude

        let location = CLLocationCoordinate2D(latitude: lat, longitude: lon)
        let span = MKCoordinateSpanMake(0.05, 0.05)
        let region = MKCoordinateRegionMake(location, span)
        mapView.setRegion(region, animated: true)

        let anotation = MKPointAnnotation()
        anotation.setCoordinate(location)
        anotation.title = "my title"
        anotation.subtitle = " my subtitle"

        mapView.addAnnotation(anotation)

        println("****** Welcome in MapViewController")



        //MARK: (471) Crossing Positions
        //*******************************************************

        let myGeoPoint = PFGeoPoint(latitude: lat, longitude:lon)
        let myParseId = PFUser.currentUser().objectId //PFUser.currentUser().objectId

        println("****** this is my geoPoint from map view controller: \(myGeoPoint)")


//        
//        var inspector = PFQuery(className:"GameScore")
//                inspector.saveInBackgroundWithBlock {
//                    (success: Bool, error: NSError?) -> Void in
//                    if (success) {
//                        // The object has been saved.
//                        var the = inspector.objectId
//                    } else {
//                        // There was a problem, check error.description
//                    }
//                }
//        
//        
//        


        func filterByProximity() {
            PFQuery(className: "Position")
                .whereKey("where", nearGeoPoint: myGeoPoint, withinKilometers: 500.0)     //(474)
            .findObjectsInBackgroundWithBlock ({
                objects, error in
                if let proximityArray = objects as? [PFObject] {
                    println("****** here the proximity matches: \(proximityArray)")
                    for near in proximityArray {
                        println("here they are \(near)")
                        if let position = near["where"] as! PFGeoPoint {
                        let theirLat = position.latituide
                        let theirLon = position.longitude
                    }

                        let theirLat = near["where"].latitude as Double
                        let theirlong = near["where"].longitude as Double
                        let location = CLLocationCoordinate2DMake(theirLat, theirlong)
                        let span = MKCoordinateSpanMake(0.05, 0.05)
                        let region = MKCoordinateRegionMake(location, span)
                        self.mapView.setRegion(region, animated: true)
                        let theirAnotation = MKPointAnnotation()
                        theirAnotation.setCoordinate(location)
                        self.mapView.addAnnotation(anotation)

                    }
                }
            })
        }

        filterByProximity()


//        //update my position
//        
//        func exists() {
//        PFQuery(className:"Position")
//            .whereKey("who", containsString: myParseId)
//            .findObjectsInBackgroundWithBlock({
//            thisObject, error in
//                if let result = thisObject as? [PFObject] {
//                    println("here the result: \(result)")
//                    
//                    let gotTheId = result[0].objectId
//                    println("ecco l'id singolo \(gotTheId)")
//
//                            //******** update function ********
//                            var query = PFQuery(className:"Position")
//                            query.getObjectInBackgroundWithId(gotTheId) {
//                                (usingObject: PFObject?, error: NSError?) -> Void in
//                                if error != nil {
//                                    println(error)
//                                } else if let objectToupdate = usingObject {
//                                    println("else occurred")
//                                    objectToupdate["where"] = myGeoPoint
//                                    println("position should be updated")
//                                    objectToupdate.saveInBackgroundWithBlock(nil)
//                                    println("position should be saved")
//
//                                }
//                            }
//                            //******** end update function ********
//                }
//            })
//        }
//        
//        exists()

        //*******************************************************




    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }




}

Обновить после первых ответов

попытался проверить наличие опций, но есть это сообщение: после того, как не бросил двойку:

Ответы на вопрос(2)

Ваш ответ на вопрос