如何处理与UILabel.text相关的可选值-Swift

时间:2018-09-04 21:22:39

标签: ios swift observer-pattern

我有一个单视图应用程序。 UIViewController上载文件,第二个UIViewController充当自定义弹出窗口。第一个视图控制器将有关上传进度的通知发送到弹出窗口中的观察者。我的应用程序在下面显示的行中的第二个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'
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您的标签属性似乎还不存在。您确定它已连接到故事板上的一个吗?

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

enter image description here