データベースから取得したオブジェクトを表示できません。 は、私が提示する私のアイテムを入れるための配列を宣言した:Firebaseデータベースの項目をTableViewControllerに表示できません
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
}
を忘れていました.tournaments.isEmpty {//議論の対象ではない self.showAlertOfEmptyTournamentsArray() } '? – Santosh
observeEventTypeからの非同期コールバックの後に配列をチェックしていますか? –
@Santoshここのケースでした。今、それは正常に動作しています、ありがとう! – michalbanan