2016-01-19 6 views
0

Я хотел бы назвать метод, но для этого требуются координаты, которые еще не были сохранены в переменных.swift - Как отложить вызов метода до тех пор, пока значение переменной не будет сохранено относительно обновления текущего местоположения.

До сих пор у меня: 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. 
} 

Я считаю, что покрыли все о моей проблеме

ответ

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. 
} 
+0

Im пытающегося это в тот момент, мои извинения за поздний ответ, но при попытке печати на экран для тестирования, и ничего в «methodToBeCalled()» не печатается на экране. Тихий провал? Grrrr – lifewithelliott

+0

, что я думаю, что это действительно сделало трюк, просто мне пришлось вернуться и изменить местоположение в раскрывающемся списке отладки, чтобы добиться успеха! Спасибо! – lifewithelliott