Я создал функцию для загрузки местоположения моих драйверов из firebase и размещения аннотаций в их текущих местоположениях, но когда я пытаюсь смоделировать для проверки кода, происходит сбой. Я пробовал как на своем телефоне, так и на симуляторе Xcode. Ниже приведен код, который продолжает сбой моего приложения.
func loadDriverAnnotationsFromFB() {
DataService.instance.REF_DRIVERS.observeSingleEvent(of: .value, with: { (snapshot) in
if let driverSnapshot = snapshot.children.allObjects as? [DataSnapshot] {
for drivers in driverSnapshot {
if drivers.hasChild("userIsDriver") {
if drivers.hasChild("coordinate") {
if drivers.childSnapshot(forPath: "isPickupModeEnabled").value as? Bool == true {
if let driverDict = drivers.value as? Dictionary<String, AnyObject> {
let coordinatArray = driverDict["coordinate"] as! NSArray
let driverCoordinate = CLLocationCoordinate2D(latitude: coordinatArray[0] as! CLLocationDegrees, longitude: coordinatArray[1] as! CLLocationDegrees)
let driverAnnotation = DriverAnnotation(coordinate: driverCoordinate, withKey: drivers.key)
var driverIsVisible: Bool {
return self.mapView.annotations.contains(where: { (annotation) -> Bool in
if let driverAnnotation = annotation as? DriverAnnotation {
if driverAnnotation.key == drivers.key {
driverAnnotation.update(annotationPosition: driverAnnotation, withCoordinate: driverCoordinate)
return true
}
}
return false
})
}
if !driverIsVisible {
self.mapView.addAnnotation(driverAnnotation)
}
}
}
}
}
}
}
})
}