2017-07-11 94 views
2

當我試圖增加currentNumberAdmin我得到:無法轉換'UILabel!'類型的值預期參數「類型INOUT字符串」

cannot convert value of type 'UILabel!' to expected argument 'type in out String'

class adminPanel: UIViewController { 

    @IBOutlet weak var currentNumberAdmin: UILabel!      

    @IBAction func nextCurrent(_ sender: UIButton) { 
     let database = FIRDatabase.database().reference() 
     database.child("current").observe(FIRDataEventType.value, with: { (snapshot) in 

      self.currentNumberAdmin.text = snapshot.value as! String 
      currentNumberAdmin += String(1) 
     }) 

    } 
} 

有誰知道我可以轉換和正確地增加currentNumberAdmin

+0

爲什麼要向視圖添加字符串?你想達到什麼目的? –

回答

0

這是因爲此行而崩潰:currentNumberAdmin += String(1)。您正試圖將字符串值添加到UILabel值,該值無效。你實際上是在告訴編譯器將一個UILabel指定爲currentNumberAdmin,以將UILabel添加到字符串中,編譯器不知道該如何執行,因此是異常消息。

這並不完全清楚你爲什麼試圖設置標籤的文本兩次:一次與snapshot.value,然後再次在下一行。如果你想要做的是將標籤的文本設置爲快照值+ 1,請執行如下操作:

@IBAction func nextCurrent(_ sender: UIButton) { 
    let database = FIRDatabase.database().reference() 
    database.child("current").observe(FIRDataEventType.value, with: { (snapshot) in 

     var strVal = Int(self.currentNumberAdmin.text)! 
     strVal += 1 
     self.currentNumberAdmin.text = String(strVal) 
    }) 

} 
+0

對不起,沒有提到snapshot.value屬於任何? –

+0

當我嘗試將它轉換爲int時,我得到這個錯誤:無法用類型'(任何?)'的參數列表類型'int'調用初始值設定項' –

+0

@EliasKnudsen如果您只是嘗試增加文字每次1,你只需要每次來回施放數值。我已更新我的示例以反映這一點。一個警告是,如果currentNumberAdmin.text包含非數字值,這將會崩潰。例如。如果標籤包含「hi」,它會崩潰,但如果它包含「0」,它將按預期工作。 –

相關問題