2017-05-09 22 views
3

友達を追加します。しかし、私がをクリックするたびにaddFriendボタンを押すと、thread 1のブレークポイントが得られます。 11dbではなく、それ以上のエラー情報はありません。 "otherUser"のNSDictionaryにnoneの値があることがわかりました。それはすべてがうまくいかない理由なのです。しかし、私はそれがなぜか分からない。同じNSDictionaryのうち、ユーザー名とプロフィールのPicが表示されます。なぜそれは無名ですか?NSDictionaryには値がありません

var otherUser: NSDictionary? 

override func viewDidLoad() { 
    super.viewDidLoad() 
databaseRef.child("user").child(self.otherUser?["uid"] as! String).observe(.value, with: { (snapshot) in 

     let uid = self.otherUser?["uid"] as! String 
     self.otherUser = snapshot.value as? NSDictionary 
     self.otherUser?.setValue(uid, forKey: "uid") 

    }) { (error) in 
     print(error.localizedDescription) 
    } 
} 
@IBAction func addFriend(_ sender: Any) { 

    if self.befreunden.titleLabel?.text == "Als Freund hinzufügen" { 

    let friendRef = "befreundet/\(self.loggedinUSerData?["uid"] as! String)/\(self.otherUser?["uid"] as! String)" 

    let BefreundenData = ["username":self.otherUser?["username"] as? String, 
           "ProfilePic":self.otherUser?["urltoImage"] as! String!] 


    let childUpdats = [friendRef:BefreundenData] 

     databaseRef.updateChildValues(childUpdats) 

     }else { 

      FreundeAnzahl = self.otherUser?["AnzahlFreunde"] as! Int + 1 

     } 
} 

編集:

私はちょうどotherUserのNSDictionaryのは、のviewDidLoad内で必要なすべての値を持っていること、を発見しました。しかし、addFriend関数でotherUserのuidを呼び出すとすぐに、nilの値が返されます。 どうしてですか?

+0

どの行にコードが停止していますか? – KKRocks

+0

これをチェックしてくださいhttp://stackoverflow.com/questions/25750595/error-thread-1-breakpoint-1-1 –

+0

let FriendRefで停止します。 – AlexVilla147

答えて

2

私はviewdidLoadで作成した新しい変数に他のユーザーのNSDictionaryのuidを渡すだけで問題を解決しました。 この方法では、後でオプションのアンラップに関する問題に直面しません。

関連する問題