我有一个UIView,其中显示了从Firestore数据库中提取的字符串。虽然代码确实成功获取并打印了字符串,但是它未能显示在我的UILabel中,即,我的UIlabel显示了单词“ defaultValue”。
我的代码如下:
var myString: String?
lazy var myLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.text = "\(myString ?? "defaultValue")"
label.textAlignment = .center
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
let docRef = db.collection("collection").document("document")
popUpListener = docRef.addSnapshotListener { (documentSnapshot, error) in
guard let document = documentSnapshot else {
print("Error")
return
}
guard let myStringg = document.get("field") else {
return
}
self.myString = "\(myStringg)"
print(myStringg) // Does indeed print out fetched value.
}
代替
self.myString = "\(myStringg)"
我怀疑你想写
self.myLabel.text = "\(myStringg)"
为了实际更新UILabel。