如何处理与UILabel.text关联的可选值 - swift

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

我有一个单一的视图应用程序。 UIViewController上传文件,第二个UIViewController充当自定义弹出窗口。第一个viewcontroller将上传进度的通知发送给弹出窗口中的观察者。我的应用程序在第二个viewcontroller中随机崩溃,如下所示。我不知道如何处理这个选项值的展开

自定义弹出UIViewController:

@IBOutlet weak var txtLabelOutlet: UILabel!

 override func viewDidLoad() {
    super.viewDidLoad()

    createUploadFinishObserver()
}


 func createUploadObserver(){
    NotificationCenter.default.addObserver(forName: notifcationName, object: nil, queue: OperationQueue.main) { (notification) in

        guard
            var arrayN = notification.userInfo as? [String:Double],
            let num = arrayN["progress"] else{
                print("no valid data")
                return
        }
        // UPDATE PROGRESS BAR
        let progress = Float.init(num)
        self.progressOutlet.progress = progress

        // UPDATE LABEL
        let percent = Int(progress*100)

        if self.txtLabelOutlet.text != nil{
            self.txtLabelOutlet.text = "\(percent)%" // CRASHES HERE 'Fatal error: Unexpectedly found nil while unwrapping an Optional value'
        }
    }
}
ios swift observer-pattern
1个回答
0
投票

您的标签属性似乎尚不存在。您确定它与故事板中的那个相关联吗?

如果您在故事板中打开助理编辑器,则可以从插座旁边的气泡拖动到视图中。

enter image description here

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