如何使用地标数组中的新地址替换以前使用地理编码的地址?

时间:2018-02-20 16:31:59

标签: ios swift geocoding

我正在使用QRCode扫描仪,当扫描仪扫描时,检查QRCode内部给出的位置是否接近我当前的位置。如果是这样,您可以继续,如果不是它给出错误消息。到现在为止还挺好。但问题是当我尝试扫描具有不同位置的第二个QRCode时,它仍将我当前位置与先前扫描的QRCode的位置进行比较。 以下是我到目前为止所做的事情:

这是地理编码部分:

           CLGeocoder().geocodeAddressString(self.qrbaradresse, completionHandler: { (placemarks, error) -> Void in

                if let placemark = placemarks?[0] {
                    let location = placemark.location
                    self.distanceCondition(locat: location!)
                }
            }

然后它进入distanceCondition函数:

  func distanceCondition (locat: CLLocation){

    print(locat, "LOCAT")
    self.distancebar = (self.locationManager.location?.distance(from: locat))!
    print (distancebar, " entfernung")
    let distanceint = Int(distancebar)

    if distanceint < 50 {

        let alert = UIAlertController(title: "Erfolgreich", message: "Du bist bei \(self.qrbarname)!", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "Weiter", style: .default, handler:{ (action) in self.performSegue(withIdentifier: "scansegue", sender: self)}))

        self.present(alert, animated: true, completion: nil)
    }else{

在func distanceCondition的第一行内,我总是打印用于距离检查的位置。它始终是第一个被扫描的代码。变量位置不会改变。所以说清楚我的观点。我想知道如何删除地标[0]并将其替换为新地址。 每次扫描代码时,都会将其添加到数组地标中,但我总是检查位置0处的数组地标,并且变量位置始终保持不变。但是,如何将新扫描的地址替换为阵列地标的位置0?

Ty!

1 个答案:

答案 0 :(得分:0)

检查并查看是否在扫描新的QR码时更新self.qrbaradresse。您应该为每次调用geocodeAddressString获取一个新的CLPlacemark数组。