我试图从firebase检索数据并显示到多个按钮和标签。 检索后,我将它保存到字典中。 这是我的模型从firebase检索到多个按钮在swift 3
import Foundation
import Firebase
class QuestionModel: NSObject {
var CorrectAnswer: String!
var Question: String!
var optionA: String!
var optionB: String!
var optionC: String!
init(snapshot: FIRDataSnapshot) {
if let snapshotDict = snapshot.value as? Dictionary<String, Any> {
CorrectAnswer = snapshotDict["CorrectAnswer"] as? String
Question = snapshotDict["Question"] as? String
optionA = snapshotDict["optionA"] as? String
optionB = snapshotDict["optionB"] as? String
optionC = snapshotDict["optionC"] as? String
}
}
}
我的JSON
我尝试了一些方法,但它返回我零。我想怎么把异步火力的。
这是我的代码。
import Foundation
import UIKit
import Firebase
import FirebaseDatabase
class AnsweringQuestionViewController: UIViewController {
@IBOutlet weak var qLabel: UILabel!
@IBOutlet weak var buttonA: UIButton!
@IBOutlet weak var buttonB: UIButton!
@IBOutlet weak var buttonC: UIButton!
@IBOutlet weak var correctAnswer: UIButton!
//var buttons: [UIButton]! thinking of using button tags?
var ref: FIRDatabaseReference!
var questionModel : [QuestionModel] = []
override func viewDidLoad(){
super.viewDidLoad()
// FIRDatabase.database().persistenceEnabled = true
ref = FIRDatabase.database().reference()
db()
}
func db(){
ref.child("Science").observe(.value, with: {
snapshot in
for child in snapshot.children {
let user = QuestionModel.init(snapshot: (child as? FIRDataSnapshot)!)
self.questionModel.append(user)
}
self.qLabel.text = self.questionModel[0].Question
self.buttonA.setTitle("\(self.questionModel[0].CorrectAnswer)", for: UIControlState.normal)
}, withCancel: nil)
}
}
请裸露我的代码我仍然在学习。我不知道该从哪里去显示我的数据到多个按钮,并确定哪个按钮被“点击”是CorrectAnwer。
如果你愿意的话,如果你能够以更简洁的方式重建我的代码,我会非常高兴。谢谢:)
是的,它可以在按钮中显示。现在我的问题是所有的correctAnswer总是在correctAnswer按钮中。但我有机会问这个问题,我如何将它显示到一个随机按钮中,并知道点击的按钮是否是正确的答案(打印语句对我来说是足够的)。 –
看到我更新的答案,你可能会接受这是正确的答案 – MikeG
从心底。谢谢!你帮了我很多,是现在的作品:)。谢谢你的最后一段,它帮助我了解下一步我会做什么。再次感谢你:) –