在此发现了多个帖子,但仍然无法将它们拼凑在一起。
我正在使用Parse来检索用户的当前位置。文档使它看起来很容易,但似乎缺少一些东西。 https://parse.com/docs/ios/guide#geopoints-getting-the-user-39-s-current-location
首先,我的代码:
class TableViewController: UITableViewController, CLLocationManagerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
print("Get GPS")
PFGeoPoint.geoPointForCurrentLocationInBackground { (geoPoint, error ) -> Void in
if error == nil {
print("Got geoPoint") //Never reaches this
print(geoPoint)
} else {
print(error ) //No error either
}
}
我试图避免让它变得比它需要的更复杂。
我也尝试过CLLocationManager样本,它似乎也没有用。
我正在使用最新版本的所有内容......昨天开始使用Parse!
我从来没有被授权使用我的位置。尝试使用CLLocationManager示例!
非常感谢一些指导/支持。
答案 0 :(得分:0)
在从Parse处理位置更新之前,你错过了一些事情是正确的。
首先,向您的班级添加位置管理器属性。
class TableViewController: UITableViewController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
设置其委托并使用它来请求用户授权:
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
print("Get GPS")
PFGeoPoint.geoPointForCurrentLocationInBackground { (geoPoint, error ) -> Void in
if error == nil {
print("Got geoPoint") //Never reaches this
print(geoPoint)
} else {
print(error ) //No error either
}
}
}
在Info.plist中,您需要添加一个键NSLocationWhenInUseUsageDescription
,并在授权请求期间为用户提供一个消息字符串值。
在上述更改后,授权请求和位置更新应该有效。