0

我想调用一个方法,但它需要尚未存储在变量中的坐标。

到目前为止,我已经:1)获得了当前位置 2)认为我存储它们?

我想做的是:1)调用方法存储这些变量后,程序就可以运行了

class ViewController: UIViewController, CLLocationManagerDelegate  {

let locationManager = CLLocationManager()
var clLatitude : CLLocationDegrees!
var clLongitude: CLLocationDegrees!

override func viewDidLoad() {
    super.viewDidLoad()

    self.locationManager.requestAlwaysAuthorization()
    self.locationManager.requestWhenInUseAuthorization()

    if CLLocationManager.locationServicesEnabled() {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.startUpdatingLocation()


    }



func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    let location:CLLocationCoordinate2D = manager.location!.coordinate

    //Test printing coordinates to screen
    print("locations = \(location.self.clLatitude) \(location.self.clLongitude)")

    //place where I think I store the variables?
    self.clLatitude  = location.latitude
    self.clLongitude = location.longitude

}

func methodToBeCalled(){
     //to be called after variables are stored.
}

我相信我已经涵盖了有关我的问题的所有内容

4

1 回答 1

0

我认为您只需要在结束时调用该方法locationManager(manager: didUpdateLocations:)

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    let location:CLLocationCoordinate2D = manager.location!.coordinate

    //Test printing coordinates to screen
    print("locations = \(location.self.clLatitude) \(location.self.clLongitude)")

    //place where I think I store the variables?
    self.clLatitude  = location.latitude
    self.clLongitude = location.longitude

    // call method
    methodToBeCalled()
}

func methodToBeCalled(){
     //to be called after variables are stored.
}
于 2016-01-19T21:24:04.370 回答