我遇到了更新位置管理器的问题。
所以这就是我想要做的。当用户进入视图时,它会询问位置信息,当用户拒绝时,我已经设置了一个我不会在此处发布的代码,因为它有效。但如果他接受我运行一个功能,我得到他的经度和经度。然后我想运行一个函数,我在其中查询API。以下代码是我做的
var tolat: Double = 0.0
var tolon: Double = 0.0
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()
}
getData() { result in
switch result {
case .Success: self.eventsTable.reloadData()
case .Failure(let error): break
}
}
}
func getData(completion: Resulty<Void> -> Void) {
print("the lat \(tolat) and the lon \(tolon)")
completion(.Success())
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let locValue:CLLocationCoordinate2D = manager.location!.coordinate
tolat = locValue.latitude
tolon = locValue.longitude
locationManager.stopUpdatingLocation()
}
并在视图结束后
enum Resulty<T> {
case Success(T)
case Failure(NSError)
}
因此它打印纬度和经度0.0。当位置纬度和经度实际上有数据时,如何使func getData
运行???