firebaseからデータを取得し、複数のボタンとラベルに表示しようとしています。 検索後、私は辞書に保存しています。 これはすぐにfirebaseから複数のボタンにアクセスする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
私のモデルであり、私はいくつかの方法を試してみましたが、それはゼロが非同期firebaseのだって考える.I私を返します。
これは私のコードです。
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が常に正しい回答ボタンにあることです。しかし、私はこれを尋ねるチャンスを取るだろう、どのように私はそれをランダムなボタンに表示し、クリックされたボタンが正しい答えであるかを知ることができる(print文で十分である)。 –
私の更新された答えを見て、これは正解であると受け入れるかもしれない – MikeG
心の底から。ありがとうございました!あなたは私をたくさん助けました。それは今ではうまくいきます。最後の段落をありがとう、私は次に何をするかの概要を知るのに役立ちます。もう一度ありがとう:) –