2016-08-08 1 views
4

이 오류가 발생했지만 StringDictionary에서 얻으려고합니다. 내 중포 기지 데이터베이스에서스위프트 - '__NSCFString'유형의 값을 'NSDictionary'로 변환 할 수 없습니다.

FIRDatabase.database().reference().child("users").child(uid).observeEventType(.ChildAdded, withBlock: { (snapshot) in 

      let dictionary = snapshot.value as! NSDictionary 

      if let username = dictionary["name"] as? String { 
       cell.name.text = username 
      } 

      if let userlogin = dictionary["login"] as? String { 
       cell.login.text = userlogin 
      } 

     }) 

두 문자열 "이름""로그인"입니다이 내 코드입니다. 나는 그 문제가 무엇인지 이해할 수 없다.

도움이 될 것입니다.

+0

문제는 NSDictionary에 대한 스냅 샷 캐스트를 고려합니다. 디버깅 중에 snaphsot 내용을 확인하십시오. – lubilis

+2

'snapshotvalue'이 string이고 해당 값을 사전으로 변환하려고합니다. –

+0

@ lubilis, let 건설을 위해 사용할 필요가있었습니다. 고마워요! 넌 나를 구했다! –

답변

4

문제는 NSDictionary에 대한 스냅 샷 캐스트입니다. 스냅 샷 값은 String이므로 시험해보기 :

FIRDatabase.database().reference().child("users").child(uid).observeEventType(.ChildAdded, withBlock: { (snapshot) in 

     if let dictionary = snapshot.value as? NSDictionary { 

      if let username = dictionary["name"] as? String { 
       cell.name.text = username 
      } 

      if let userlogin = dictionary["login"] as? String { 
       cell.login.text = userlogin 
      } 
     } 
    }) 
관련 문제