从Parse获取PFGeoPoint以创建点注释

时间:2015-07-03 06:27:22

标签: swift parse-platform mkmapview mkpointannotation

我试图从Parse中获取已保存的GeoPoints,以便创建可在地图视图中查看的点注释。这是我目前的代码:

override func viewDidLoad() {
    super.viewDidLoad()
    var query = PFQuery(className:"SpotInfo")
    query.whereKey("Location", equalTo: PFGeoPoint() )
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]?, error: NSError?) -> Void In
        if error == nil {
            println("Succesfully retrieved objects.")
            if let objects = objects as? [PFObjects] {
                for object in objects {
                    println(objects.objectId)
                }
            }
        } else {
            println("Error: \(error!)(error!.userInfo!)")
        }
        let latit = query["Location"].latitude as Double
        let longi = query["Location"].longitude as Double
        let SpotLoc = CLLocationCoordinate2DMake(latit, longi)
        let Spot = MKPointAnnotation()
        Spot.coordinate = SpotLoc
        Spot.title = "Spot"
        Spot.subtitle = "Time"
        Map.addAnnotation(Spot)
    }
}

let latitlet longi变量中,我收到错误消息 " PFQuery没有名为下标的成员" 这是什么意思,我该如何解决?请帮忙。谢谢!

1 个答案:

答案 0 :(得分:1)

你似乎对几点感到困惑。

为查询创建地理点时,需要指定纬度和经度。你需要从某个地方获取它们。您当前的代码创建一个空位置。因此,您需要使用位置管理器来获取当前位置/询问用户/硬编码。

调用完成块时,您应该使用返回的objects,而不是尝试从查询中访问某些信息。这是您当前编译错误的原因,因为查询没有提供您尝试使用它的内容。 Eeach对象有一个Location,你应该在循环中使用它,它当前只是记录。