如何用placemarks阵列中的新地址替换先前的地理编码地址



我正在使用QRCode-Scanner,当扫描仪确实扫描时,它会检查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!)
                }
            }

然后进入伸展项函数:

  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 Distancecontition IM的第一行中,始终打印用于距离检查的位置。这始终是扫描的第一个代码。变量位置永远不会改变。因此,要明确我的观点。我想知道如何删除placemarks [0]并将其替换为新地址。每次扫描代码时,它都会添加到数组placemarks中,但是IM总是检查位置0的数组placemarks,并且变量位置始终保持不变。但是,如何用数组placemarks的位置0中的位置0替换新的扫描地址?

ty!

检查并查看您是否在扫描新QR代码时是否更新Self.QRBaradresse。您应该为每个呼叫的地理dressstring呼叫获得一个新的clplacemark阵列。

最新更新