转发地理编码completionHandler未在iOS swift4中执行

时间:2018-04-14 08:17:39

标签: ios google-maps swift4 geocoding cllocation

我正在尝试将地址转换为latlongs以将它们放置在googleMap上但是,当我将地址字符串传递给geoCoder.geoAddressString(fullAddress)并运行应用程序时,completionHandler未执行,我尝试使用geoCoder.geocodeAddressString(fullAddress) { (placemarks, error)处的断点并且当我点击步骤时它会在完成处理程序时出现..

现在,我不知道为什么会这样......有人知道吗?请帮助..

在此处查看我的代码:

 func loadMarkers() {

        for i in 0..<self.professioanlDetailsAH.count {

            let fullAddress = "\(self.professioanlDetailsAH[i]["searchAddress"]!)"

            if !fullAddress.isEmpty {
                var geoCoder = CLGeocoder()
                geoCoder.geocodeAddressString(fullAddress) { (placemarks, error) in
                            guard
                                let placemarks = placemarks,
                                let addressLocation = placemarks.first?.location
                                else {
                                    // handle no location found
                                    return
                            }

                            let latitude = addressLocation.coordinate.latitude
                            let longitude = addressLocation.coordinate.longitude
                }
            }
        }
    }

编辑:

func loadMarkers() {
        for i in 0..<self.professioanlDetailsAH.count {

            print(self.professioanlDetailsAH[i]["firstName"]!)

            let fullAddress = "\(self.professioanlDetailsAH[i]["searchAddress"]!)"

            print(fullAddress)

            if !fullAddress.isEmpty {
            geoCoder.geocodeAddressString(fullAddress) {(placemarks, error) in

                if error != nil {

                    print(error!)
                }

                else{
                guard
                        let placemarks = placemarks,
                        let addressLocation = placemarks.first?.location
                else {return}

                            let latitude = addressLocation.coordinate.latitude
                            let longitude = addressLocation.coordinate.longitude

                print("lat:\(latitude), long:\(longitude)")

                }
            }
       }
   }

0 个答案:

没有答案