Ios 无法在geofire getlocation回调中显示批注

Ios 无法在geofire getlocation回调中显示批注,ios,firebase,swift3,geofire,Ios,Firebase,Swift3,Geofire,我想在我从geofire数据库获得的位置上显示注释,但即使在编写代码并且没有收到任何错误之后,地图上也看不到任何注释。 我的变量是 var vendorStore: Dictionary<String,Int> 我在print语句中也成功地获得了纬度和经度,但仍然没有显示任何注释。我尝试用一些硬编码的lat-long坐标将代码移到for循环之外(只是为了检查是否显示任何注释),注释显示成功。但当在循环内的geofire函数中设置时,它们仍然不会显示(即使使用硬编码值,也不会在geo

我想在我从geofire数据库获得的位置上显示注释,但即使在编写代码并且没有收到任何错误之后,地图上也看不到任何注释。 我的变量是

var vendorStore: Dictionary<String,Int>

我在print语句中也成功地获得了纬度和经度,但仍然没有显示任何注释。我尝试用一些硬编码的lat-long坐标将代码移到for循环之外(只是为了检查是否显示任何注释),注释显示成功。但当在循环内的geofire函数中设置时,它们仍然不会显示(即使使用硬编码值,也不会在geofire函数外的循环中显示)。因此,请帮助我解决这个问题。

我发现了这个问题。主要问题是,我正在从上一个视图控制器发送数据。在从上一个控制器发送数据之前,该视图控制器已更改。因此,解决方案是确保在视图实际出现之前在下一个视图控制器的变量中设置数据。这就是我现在想要实现的目标。

我发现了问题所在。主要问题是,我正在从上一个视图控制器发送数据。在从上一个控制器发送数据之前,该视图控制器已更改。因此,解决方案是确保在视图实际出现之前在下一个视图控制器的变量中设置数据。这就是我现在想要达到的目标。

问题仍然没有解决
for (key,_) in KeyValue{
        geoFireKeyValue.getLocationForKey(key, withCallback: { (location, error) in
            if (error != nil) {
                print("An error occurred getting the location for \"firebase-hq\": \(String(describing: error?.localizedDescription))")
            } else if location != nil {
                let annotation = MKPointAnnotation()
                self.lat = (location?.coordinate.latitude)!
                self.long = (location?.coordinate.longitude)!
                annotation.coordinate = CLLocationCoordinate2D(latitude: self.lat, longitude: self.long)
                self.mapView.addAnnotation(annotation)
                self.mapView.showAnnotations(self.mapView.annotations, animated: true)

            } else {
                print("GeoFire does not contain a location for \"firebase-hq\"")
            }
        })
    }