IBOutlet 为零

IBOutlet is nil

我已经为一个视图创建了一个标准出口,它将根据在上一个屏幕上选择的按钮保存不同的信息。

@IBOutlet weak var labelView: UIView!

它表明它在情节提要视图和代码本身中都已连接,但是,每次我访问对 labelView 的任何引用时,例如:

if detail.description == "About"
{
   labelView.backgroundColor = UIColor.red
}

然后应用程序崩溃:

fatal error: unexpectedly found nil while unwrapping an Optional value

我已经尝试了我能想到的或在互联网上看到的一切:

在这一点上我确信答案相当简单,我只是完全想念它。

要查看出口设置为 nil 的位置,试试这个:

@IBOutlet weak var labelView: UIView? {
    didSet {
        print("labelView: \(labelView)")
    }
}

您应该会在加载视图时看到它设置为初始值。如果它然后被设置为 nil,在 print 上放置一个断点,你应该能够从回溯中看到它发生的地方。

视图已延迟初始化。如果您在视图生命周期中调用受影响的代码行 before viewDidLoad(),请尝试提前访问 view

if detail.description == "About" {
    _ = self.view
    labelView.backgroundColor = UIColor.red
}