当数据存在时,Swift错误展开nil

时间:2016-11-11 12:42:47

标签: ios swift segue

我正在将User个对象传递给另一个segue。无论出于何种原因,我都可以打印出对象并查看控制台中的所有信息。我甚至可以打开数据,但当我将数据插入插座时,它会崩溃。

var user : User? {
    didSet {
        if let name = user?.name {
            print(name)
            nameLabel.text = name
        }
    }
}

enter image description here 正如您所看到的那样,该属性存在,但是当我尝试将其应用到我的IBOutlet时,它会崩溃....

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您要设置某个其他控制器的值且未加载ChatVC,那么nameLabelnil,您可以通过检查nil来防止崩溃。

var user : User? {
    didSet {
        if let name = user?.name  {
            print(name)
            if nameLabel != nil {
                nameLabel.text = name
            }
        }
    }
}

此外,如果您设置nameLabel已创建ChatVC实例的地方,那么您需要在Label viewDidLoad中设置ChatVC文字。像这样。

override func viewDidLoad() {
    super.viewDidLoad()
    nameLabel.text = user?.name
}