在 Firebase 调用中模糊使用下标
Ambiguous use of subscript in Firebase call
我正在尝试进行 firebase 读取,我正在尝试从 firebase 读取一个整数,但由于某种原因这不起作用:
func firebaseCall () {
ref.observeEventType(.Value, withBlock: { snapshot in
print(snapshot.value)
let people = snapshot.value["people"] as! Int
print("People is \(people)")
// let time = snapshot.value["time"] as! Int
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Hour, fromDate: date)
let hour = components.hour
print("time is \(hour)")
}, withCancelBlock: { error in
print(error.description)
})
}
我在 snapshot.value["people"] 上收到下标使用不明确的错误。我在另一个项目中使用了确切的代码并且它有效,所以我非常困惑。不同之处在于这段代码是在 SKScene 中使用的,而另一次是在视图控制器中。谁能帮忙解决这个问题?或者建议我可以从 firebase 读取 int 值的另一种方法?谢谢
编译器不知道
返回的是什么
let people = snapshot.value["people"] as! Int
您可以考虑
if let someInt = snapshot.value.objectForKey("people")
or
if let someInt = snapshot.value as? Int
不知道快照中的内容会造成一些歧义。
如果对象可能为 nil,您可能需要添加一些方法来处理它
if let thing = snapshot.value {
print("thing was not nil")
} else {
print("thing was nil")
}
我正在尝试进行 firebase 读取,我正在尝试从 firebase 读取一个整数,但由于某种原因这不起作用:
func firebaseCall () {
ref.observeEventType(.Value, withBlock: { snapshot in
print(snapshot.value)
let people = snapshot.value["people"] as! Int
print("People is \(people)")
// let time = snapshot.value["time"] as! Int
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Hour, fromDate: date)
let hour = components.hour
print("time is \(hour)")
}, withCancelBlock: { error in
print(error.description)
})
}
我在 snapshot.value["people"] 上收到下标使用不明确的错误。我在另一个项目中使用了确切的代码并且它有效,所以我非常困惑。不同之处在于这段代码是在 SKScene 中使用的,而另一次是在视图控制器中。谁能帮忙解决这个问题?或者建议我可以从 firebase 读取 int 值的另一种方法?谢谢
编译器不知道
返回的是什么let people = snapshot.value["people"] as! Int
您可以考虑
if let someInt = snapshot.value.objectForKey("people")
or
if let someInt = snapshot.value as? Int
不知道快照中的内容会造成一些歧义。
如果对象可能为 nil,您可能需要添加一些方法来处理它
if let thing = snapshot.value {
print("thing was not nil")
} else {
print("thing was nil")
}