2016-11-08 2 views
0

나는 내 파이어베이스 DB에 어려움을 겪고 있는데, 내가 뭘 잘못하고 있는지 몰라.firebase 데이터베이스를 반복 할 때 왜 nil이 발생합니까?

self.ref.child("User").observeSingleEvent(of: .value, with: { (snapshot) in 

    let value = snapshot.value as! [String: AnyObject] 

    for each in value { 
     let username = each.value["username"] as! String 
     self.ref.child("Highscores").child(username).observeSingleEvent(of: .value, with: { (snapshot) in 
      let wert = snapshot.value as! [String: AnyObject] 
      for each in wert { 
       let fbscore = each.value["score"] as! String 

이 경우 fbscore는 nil입니다.

각각의 출력 (인쇄)은 ("score", 21)이므로 each.key는 "score"이고 each.value는 "21"입니다.

어디에 내 실수는? 나는 아무것도 보지 못했다.

+0

'fbscore = each.value! Int' –

+0

하하, 고맙습니다 ... 너무 쉬웠습니다. 고맙습니다! –

답변

1

이 아닌 String을 수정하려면 AnyObject을 다운 캐스트해야합니다.

each.value as! Int 

뿐만 아니라 exceptions.Use guard 또는 바인딩 옵션 nil을 방지하기 위해.

if let fbscore = each.value as? Int {  
    print(fbscore) 
}else{ 
    print("casting failed") 
} 
관련 문제