Ios 无法转换类型为';UILabel';到预期参数';输入输入输出字符串';

Ios 无法转换类型为';UILabel';到预期参数';输入输入输出字符串';,ios,swift,Ios,Swift,当我尝试增加currentNumberAdmin时,我得到: 无法转换“UILabel!”类型的值到预期参数“键入输入输出字符串” 有人知道如何正确转换和增加currentNumberAdmin 这是因为以下行而崩溃:currentNumberAdmin+=String(1)。您正在尝试向UILabel值添加字符串值,这是无效的。您实际上是在告诉编译器将UILabelcurrentNumberAdmin赋值给表达式的值,将UILabel添加到字符串中,编译器不知道如何执行此操作,因此出现异常消息

当我尝试增加
currentNumberAdmin
时,我得到:

无法转换“UILabel!”类型的值到预期参数“键入输入输出字符串”


有人知道如何正确转换和增加
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)
    })

}

很抱歉没有提到snapshot.value的属性为Any?当我尝试将其转换为int时,我得到了以下错误:无法使用类型为“(Any?)@EliasKnudsen的参数列表调用类型为“int”的初始值设定项如果您只是尝试每次将文本的值递增1,则每次只需来回转换该值。我更新了我的示例以反映这一点。一个警告是,如果currentNumberAdmin.text包含非数值,则此操作将崩溃。例如,如果标签包含“hi”,它将崩溃,但如果它包含“0”,它将按预期工作。当我使用您编写的代码时,建议放置一个!在如下参数中:“var strVal=Int(self.currentNumberAdmin.text!)”。当我运行此命令时,在展开可选值时意外发现nil。您需要在interface builder中将标签的初始值设置为0,或者需要在代码中添加检查(可能更安全),以确保该值不为空,这意味着要测试字符串“”。为什么要在视图中添加字符串?你想达到什么目标?
@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)
    })

}