无法转换’UILabel’类型的值! 预期参数’type inout String’

当我尝试增加currentNumberAdmin我得到:

无法转换’UILabel’类型的值! 预期参数’输入字符串’

 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

由于这一行而崩溃: currentNumberAdmin += String(1) 。 您正在尝试将字符串值添加到UILabel值,该值无效。 你实际上告诉编译器将currentNumberAdmin (UILabel)分配给将UILabel添加到String的表达式的值,编译器不知道该怎么做,因此是exception消息。

为什么要尝试将标签的文本设置两次并不完全清楚:一次使用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) }) }