0
我無法呈現從數據庫獲得的對象。 我聲明數組包含我的項目提出:無法在TableViewController中顯示Firebase數據庫中的項目
var tournaments = [TournamentItem]()
我的結構的TournamentItem初始化函數:
init(snapshot: FIRDataSnapshot!) {
key = snapshot.key
ref = snapshot.ref
type = snapshot.childSnapshotForPath("type").value as! String
name = snapshot.childSnapshotForPath("name").value as! String
numberOfParticipants = snapshot.childSnapshotForPath("numberOfParticipants").value as! Int
tournamentMode = snapshot.childSnapshotForPath("mode").value as! Bool
completed = snapshot.childSnapshotForPath("completed").value as! Bool
}
功能來獲取數據的樣子:
func getTournamentListSnapshot() {
ref.observeEventType(.Value, withBlock: { snapshot in
//print("\(snapshot.key) -> \(snapshot.value)")
for item in snapshot.children {
let tournamentItem = TournamentItem(snapshot: item as! FIRDataSnapshot)
self.tournaments.append(tournamentItem)
}
if self.tournaments.isEmpty { //not a subject of discussion
self.showAlertOfEmptyTournamentsArray()
}
})
}
而且我裏面調用此我的ViewDidLoad方法。 問題是,在調用此方法後,我的數組是空的,但Firebase數據庫不是。 我試圖調試這整個事情,但我找不到解決這個問題的任何解決方案。
我TableViewController委託方法是這樣的:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tournaments.count
}
難道你忘了叫'tableView.reloadData()'如果自我.tournaments.isEmpty {//不是討論主題 self.showAlertOfEmptyTournamentsArray() }'? – Santosh
您是否在從observeEventType異步回調之後檢查數組? –
@Santosh在這裏就是這種情況。現在它工作正常,謝謝! – michalbanan