【发布时间】:2016-06-22 03:36:07
【问题描述】:
我在 Firebase 中增加一条数据时遇到问题。
Firebase {
clickedCounter: 0
}
这是我的代码:
@IBAction func plus(sender: UIButton) {
FIRDatabase.database().reference().child("clickedCounter").observeEventType(.Value) { (snap: FIRDataSnapshot) in
let value = FIRDatabase.database().reference().child("clickedCounter") as? NSNumber
let increment = ((value?.intValue)! + ((1 as? NSNumber)?.intValue)!) as? NSNumber
FIRDatabase.database().reference().child("clickedCounter").setValue()
self.clickLabel.text = snap.value?.description as String!
}
}
我也试过了:
@IBAction func plus(sender: UIButton) {
FIRDatabase.database().reference().child("clickedCounter").observeEventType(.Value) { (snap: FIRDataSnapshot) in
FIRDatabase.database().reference().child("clickedCounter").setValue((snap.value?.description)! + 1)
self.clickedLabel.text = snap.value?.description as! String!
}
}
首先我的警告是:
Cast from Int32 to NSNumber always fails
Conditional cast from NSNumber to NSNumber always succeeds
Cast from FIRDatabaseReference to NSNumber always fails
运行后,let increment.... 出现错误:Thread 1: EXC_BAD_INSTRUCTION
第二个错误是:
Binary operator + cannot be applied to operands of the type String and Int
当我认为我在 Firebase 中将
snap.value?.description定义为一个 Int 时,我很困惑我的snap.value?.description如何是一个字符串。为什么总是成功时我会收到警告?
有没有更好的方法来做到这一点?
谢谢!
【问题讨论】:
标签: swift firebase firebase-realtime-database