致命错误:隐式解包可选值时意外发现 nil

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

我的问题是我的程序构建时没有错误,然后每当我单击按钮时,它都会在代码行上抛出错误“致命错误:隐式展开可选值时意外发现 nil”:

SubButton1Outlet.isEnabled = true

我正在尝试使情节提要编辑器中设置为禁用的按钮自行启用。我确保 IBOutlet 已连接到故事板中的右侧按钮,但它仍然抛出错误。

override func viewDidLoad() {
        super.viewDidLoad()
        CallMemory()
        SubButton1Outlet.isEnabled = true
    }
    
    @IBAction func SubButton1(_ sender: Any) {
        SubNumber = 1;
    }
    @IBOutlet weak var SubButton1Outlet: UIButton!

这里是与问题相关的整个代码部分以及 Xcode 的一些屏幕截图。

Xcode Simulator Photo

Xcode Code Editor

Full Xcode Window

我的期望:

  • 程序加载
  • SubButton1 变为启用状态
  • var SubNumber
    设置为值
    1
  • 单击 SubButton1,打开另一个场景

发生了什么:

  • 程序加载
  • SubButton1 变为启用状态
  • SubButton1 被单击
  • 程序抛出错误并停止
ios swift storyboard
1个回答
0
投票

Interface Builder 将 IBOutlet 设置为“隐式解包选项”,这意味着如果插座链接损坏,您的代码将崩溃。

你的

SubButton1Outlet
就是这样一个隐式展开的可选选项。 (注意类型后面的感叹号。

由于某种原因,出口为零。检查 Interface Builder 中的链接。

如果它显示为已连接,则您可能正在以根本不从故事板加载视图的方式创建视图控制器。然而,在我们帮助诊断之前,您必须向我们展示如何实例化和加载视图控制器。

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