Obtendo um valor let fora de uma função
Olá, sou novo em programação rápida e quero obterlabel
valor deloadData()
para usar use for my path (reference) to my database ondbRef!.child(place+"/placeLabel")
. O que eu quero dizer?! Eu li dados que estão no nó "Dio Con Dio". Isso acontece porque o valorplace
élet place = "Dio Con Dio"
. Portanto, meu aplicativo não carrega dados do nó "Paradosiako - Panorama". Eu quero carregar tudo do banco de dados e pensei que se eu pudesse fazerplace
valor para mudar para o próximo nó, ele pode ler todos os dados.
import UIKit
import FirebaseDatabase
class PlacesTableViewController: UITableViewController {
//MARK: Properties
@IBOutlet weak var placesTableView: UITableView!
//database reference
var dbRef:FIRDatabaseReference?
var places = [Places]()
private var loadedLabels = [String: String]()
private var loadedRatings = [String: Int]()
//handler
var handle:FIRDatabaseHandle?
override func viewDidLoad() {
super.viewDidLoad()
dbRef = FIRDatabase.database().reference()
// Loads data to cell.
loadData()
}
private func loadData() {
let place = "Dio Con Dio"
dbRef!.child(place+"/placeLabel").observe(.childAdded, with: {
(snapshot) in
let label = snapshot.value as! String
self.updatePlace(snapshot.key, label: label)
})
dbRef!.child(place+"/rating").observe(.childAdded, with: {
(snapshot) in
let rating = snapshot.value as! Int
self.updatePlace(snapshot.key, rating: rating)
})
}
private func updatePlace(_ key: String, label: String? = nil, rating: Int? = nil) {
if let label = label {
loadedLabels[key] = label
}
if let rating = rating {
loadedRatings[key] = rating
}
guard let label = loadedLabels[key], let rating = loadedRatings[key] else {
return
}
if let place = Places(name: label, rating: rating) {
places.append(place)
placesTableView.reloadData()
}
}
}
(Esta pergunta é uma continuaçãodeste.)