2017-05-09 53 views
3

我想要用戶添加好友。然而,每當我點擊addFriend按鈕,我得到一個斷點與thread 1。沒有更多的錯誤信息,而不是11db。 我現在發現「otherUser」的NSDictionary的值爲none。這就是一切都不起作用的原因。但我不知道爲什麼。在相同的NSDictionary中,我得到用戶名和個人資料圖片。爲什麼沒有呢?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函數中調用其他用戶的uid,它就會返回nil值。 爲什麼會發生?

+0

您的代碼在哪行停止? – KKRocks

+0

檢查這一個http://stackoverflow.com/questions/25750595/error-thread-1-breakpoint-1-1 –

+0

它停止讓FriendRef。 – AlexVilla147

回答

2

我通過簡單地將其他用戶NSDictionary的uid賦給我在viewdidLoad中創建的新變量來解決了這個問題。 這種方式我以後不會面臨任何有關解包可選項的問題。