当我尝试增加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值,这是无效的。您实际上是在告诉编译器将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)
    })

}

08-26 04:13