我正在尝试从实时数据库中检索薪水数据,并通过将“薪水”与测试编号 9500 进行比较来计算“小数”。使用 for...in 循环,我希望得到带有 2 的“小数”(如总共 3 个数字中有 2 个数字小于 9500),虽然我在 for...in 循环中得到了正确的“smallnumber”聚合,但我得到的结果是最终打印的 smallnumber 行为 0。此外,底部打印块似乎比 for...in 循环执行得更早。谁能帮帮我?
这是快速代码:
ref.child("Salary").observe(.value, with:{ snapshot in
let value = snapshot.value as? NSDictionary
let Ids = value?.allKeys as! [String]
var smallnumber: Int = 0
for Id in Ids {
ref.child("Salary").child(Id).observe(.value, with: { snapshot in
let salary = snapshot.value as! Int
if salary < 9500 {
smallnumber = smallnumber + 1
print("Salary is small")
print(smallnumber)
}
})
}
print("Idscount is \(Ids.count)")
print("smallnumber is \(smallnumber)")
})
Idscount is 3
smallnumber is 0
Salary is small
1
Salary is small
2