我有下面的代码,我正在尝试将纬度坐标和经度坐标存储到2个数组中。我的问题是在我甚至有机会从firebase检索数据之前加载控制器。目前我正在使用回调但无法将数据存储在数组中。
class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
var restaurantArray = [Restaurant]()
var latArray = [Double]()
func getWorkersList(callback: @escaping ((_ data:[Restaurant]) ->Void )) {
FIRDatabase.database().reference().child("AthensRestaurants/Restaurants").observe(.value, with: { (snapshot) in
var results = [Restaurant]()
for res in snapshot.children{
let res = Restaurant(snapshot: res as! FIRDataSnapshot)
results.append(res)
}
self.restaurantArray = results.sorted(by: { (u1, u2) -> Bool in
u1.name < u2.name
})
callback(results)
}) { (error) in
print(error.localizedDescription)
}
}
var dataBaseRef: FIRDatabaseReference! {
return FIRDatabase.database().reference()
}
override func viewDidLoad() {
super.viewDidLoad()
helpMe()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
getWorkersList(callback: { (data:[Restaurant]) -> Void in
print(data)
for item in data {
self.latArray.append(item.latitude)
}
print(self.latArray.count)
print("hello")
})
}
func helpMe(){
print("hello")
print(latArray.count)
}
}