Swift:AddressToCoordinates 'geocodeAddressString(address)' 中的执行顺序不正确

问题描述

当我点击 UI 按钮时,我的程序会运行这个方法,但在执行过程中它会跳转到“geoCoder.geocodeAddressString(address)”之后的所有内容并直接打印纬度。打印纬度 (0.0) 后,它立即进入“geoCoder.geocodeAddressString(address)”并打印“我在这里”。有人能帮我理解为什么程序按这个顺序运行吗?

@IBAction func enteredAddress(_ sender: UIButton) {
        address = addressBar.text!
        print(address)
  
        let geoCoder = CLGeocoder()
        geoCoder.geocodeAddressString(address) { (placemarks,error) in
            guard
                let placemarks = placemarks,let location = placemarks.first?.location
            else {            
                return
            }
            self.latitude = location.coordinate.latitude
            print("I am here")
        }
        
        print("This is latitude: ",self.latitude)
        
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)