Я пытаюсь отобразить содержимое базы данных Firebase. Я знаю, что я правильно их читаю, так как я могу печатать их так, как они читаются. Проблема в том, что когда я вызываю метод, чтобы отобразить их на экране, они «вне диапазона».
Я знаю, что это означает, что методы вызываются одновременно, поэтому массив пуст. Я пробовал метод «Sleep ()» и не работает.
//arrays of names and descriptions
var Names:[String] = []
var Desctiptions: [String] = []
начальный метод
override func viewDidLoad() {
super.viewDidLoad()
getRestauraunt()
//create slides
scrollView.delegate = self
slides = createSlides()
setupSlideScrollView(slides: slides)
}
func getRestauraunt(){
let db = Firestore.firestore()
db.collection("Test").getDocuments { (snapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in snapshot!.documents {
let name = document.get("Name") as! String
let description = document.get("Description") as! String
//print("Names: ",name," Description: ",description)
self.Names.append(name)
self.Desctiptions.append(description)
}
}
}
}
метод создания слайдов
func createSlides() -> [Slide] {
//firebase link
let slide1:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide1.labelTitle.text = Names[0]
}
Я хотел бы, чтобы кто-нибудь показал мне, как получить метод createSlides ()ожидать завершения метода getRestauraunts (). Спасибо