为什么我的UILabel无法显示成功获取的值?

问题描述 投票:0回答:1

我有一个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.
    }
swift uiview google-cloud-firestore uilabel
1个回答
0
投票

代替

self.myString = "\(myStringg)"

我怀疑你想写

self.myLabel.text = "\(myStringg)"

为了实际更新UILabel。

© www.soinside.com 2019 - 2024. All rights reserved.