首页 > 解决方案 > 如何处理与 UILabel.text 关联的可选值 - swift

问题描述

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

自定义弹出 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'
        }
    }
}

标签: iosswiftobserver-pattern

解决方案


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

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

在此处输入图像描述


推荐阅读