我试图获取一个数字的百分比,并在语句中使用两次。因此,基本上我的代码所做的是检查出勤率是“出席”还是“迟到”,如果为true,则将1加到count并将1加到count2。否则,如果出席人数为“缺席”,则在count2上再增加1,并在显示count(present)/ count2(total)下显示。 这是我的代码段:
func retrieveImnpd(){
let userId = Auth.auth().currentUser?.uid
let intakeRef = Database.database().reference().child("Users").child(userId!).child("Intake")
intakeRef.observeSingleEvent(of: .value, with: { (snapshot) in
if let intake = snapshot.value{
var count = 0
var count2 = 0
var perc = 0
self.ref.child("Attendance").child("Checkin").child("BM050-3-3-IMNPD").child(intake as! String).observe(.childAdded, with: { (snapshot) in
if let nodeData = snapshot.value, !(nodeData is NSNull) {
let nodeData = snapshot.value as! Dictionary<String, Any>
for(_, value) in nodeData {
if let dict = value as? NSDictionary {
if let attendance = dict.object(forKey: "Attendance") as? String{
if attendance == "Present" || attendance == "Late"{
count+=1
}
count2+=1
//self.imnpdLabel.text = String(count) + "/" + String(count2) + " (" + String(perc) + "%)"
perc = count/count2 * 100
if perc >= 80{
self.imnpdLabel.textColor = UIColor.green
}
else{
self.imnpdLabel.textColor = UIColor.red
}
self.imnpdLabel.text = String(count) + "/" + String(count2) + " (" + String(perc) + "%)"
//print(attendance)
}
}
}
}else{
print("No Data...")
}
})
}
}) { (Error) in
print("unable to retrieve name from nameRef")
}
}
我正在从Firebase检索出席者,当“出席”出席者时它按预期工作,但是当“缺席”出席者时我无法更改百分比。我尝试在else语句中添加1后再次计算百分比,但它返回0,并且如果出勤率为1/2,我不知道如何获得50%。 我还是新手,所以我们将不胜感激!
添加打印语句时得到的输出:
1
1
1
2
我想那是因为它有1个出席者作为“出席”,1个出席者作为“缺席”,所以它显示了两个事件的计数和计数2