我试图从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 latit
和let longi
变量中,我收到错误消息
" PFQuery没有名为下标的成员"
这是什么意思,我该如何解决?请帮忙。谢谢!
答案 0 :(得分:1)
你似乎对几点感到困惑。
为查询创建地理点时,需要指定纬度和经度。你需要从某个地方获取它们。您当前的代码创建一个空位置。因此,您需要使用位置管理器来获取当前位置/询问用户/硬编码。
调用完成块时,您应该使用返回的objects
,而不是尝试从查询中访问某些信息。这是您当前编译错误的原因,因为查询没有提供您尝试使用它的内容。 Eeach对象有一个Location
,你应该在循环中使用它,它当前只是记录。