我知道这可能是一个简单的任务,我想返回currentLocGeoPoint
的值并返回{PAMEbject类型的Objects
数组。
return currentLocGeoPoint
并将Void in
更改为PFGeoPoint in
。给出错误:PFGeoPoint is not convertible to 'Void'
所以我不确定如何获取变量currentLocGeoPoint
。
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
CLGeocoder().reverseGeocodeLocation(manager.location, completionHandler: { (placemarks, error) -> Void in
if (error != nil) {
println("Error:" + error.localizedDescription)
//return
}
if placemarks.count > 0 {
let pm = placemarks[0] as CLPlacemark
self.displayLocationInfo(pm)
currentLoc = manager.location
currentLocGeoPoint = PFGeoPoint(location:currentLoc)
var query = PFQuery(className:"Bar")
query.whereKey("BarLocation", nearGeoPoint:currentLocGeoPoint, withinMiles:10)
query.limit = 500
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if objects != nil {
} else {
println("error: \(error)")
}
}
} else {
println("error: \(error)")
}
})
}
答案 0 :(得分:1)
我不理解"我想要返回currentLocGeoPoint"的概念。把它归还给什么?您使用的是CLLocationManagerDelegate
方法,因此没有人将其退回。
但是,您可以做的是,当请求完成时(即在此闭包内),调用其他需要currentLocGeoPoint
的函数。或者,您可以更新UI以反映更新的信息(确保将更新分发给主线程)。或者,如果您有其他需要了解新数据的视图控制器或模型对象,您可以发布通知,让他们知道有更新的currentLocGeoPoint
。但是在这种方法中,没有人会向你回复"数据。
答案 1 :(得分:0)
您可以将其分配给班级的存储属性。只需使用
self.<property> = currentLocGeoPoint