У меня есть функция, которая получает количество документов пожарного хранилища в коллекции, и я хочу использовать это количество в качестве возврата для функции табличного представления numberOfRowsInSection. Возврат вызывается до того, как счетчик будет получен с сервера и завершит работу программы. Я считаю, что мне нужно использовать замыкания, чтобы возвращать ожидание завершения, но я не уверен, как вернуть целое число из замыкания. Я довольно новичок в Swift и еще новее в Closures.
func getCount(completion: @escaping (Int) -> (Int)) {
let today = getToday()
let eventsRef = db.collection("users").document("test@test.com").collection(today)
eventsRef.getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
completion((querySnapshot?.count)!)
}
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
getCount { (count) in
self.count = count
}
return count!
}