gpt4 book ai didi

Swift:来自自定义类的函数调用抛出异常

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:34 24 4
gpt4 key购买 nike

我有一个 NSButton 的自定义类。按下按钮通过 AppDelegate().startTask() 调用主 AppDelegate.swift 中的一个函数,它触发一个 NSTask 并通过 AppDelegate.swift 中的 IBOutlet 为一个 NSProgressIndicator 设置动画。

@IBOutlet weak var mySpinner: NSProgressIndicator!

func startTask() -> Void
{
mySpinner.startAnimation(true)
...
}

它在 mySpinner.startAnimation(true) 处抛出错误:

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)

我错过了什么?从自定义类调用时,AppDelegate 是否无权访问此 IBOutlet?从 AppDelegate 中调用此函数工作正常。

最佳答案

问题

用这条线

AppDelegate().startTask()

您正在创建一个新的 AppDelegate。在这个新实例中,mySpinner 没有被填充并且这一行确实崩溃了

mySpinner.startAnimation(true)

因为 mySpinndernil

解决方案

您应该改为检索已创建的 AppDelegate 实例

let appDelegate = NSApplication.sharedApplication().delegate as! AppDelegate
appDelegate.startTask()

关于Swift:来自自定义类的函数调用抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com