我正在创建一个Calculator应用程序作为我在Xcode中的第一个项目,我正在尝试实现按键功能。为了做到这一点,我创建了一个Global
类,其中包含所有代码,以便我的NSWindow
类和我的NSViewController
类可以无错误地访问它,因为应用程序取决于更改IBOutlet的文本。但是问题是它返回一个unexpectedly found nil while unwrapping an Optional value
,其中包含我目前得到的代码,我真的不知道我还能做到这一点:
这是我从Global类访问IBOutlet的方式:viewInstance.configureLabel(newString: newEquationCacheLabel)
这是访问的内容:
@IBOutlet weak private var equationCacheLabel: NSTextField!
func configureLabel(newString: String) {
equationCacheLabel.stringValue = newString
}
然后是我的ViewController的全局实例(在类之外声明):let viewInstance = ViewController()
提前谢谢!
答案 0 :(得分:0)
感谢所有帮助过的人,但事实证明它返回depthimagemouse
的原因是我正在访问nil
版本。我正在访问我自己的nil
版本,该版本没有ViewController
的初始版本。事实证明,如果我访问了应用程序中实际显示的equationCacheLabel
,它工作得很好。这就是我访问NSViewController
的方式(注意我创建了一个OS X / macOS Swift应用程序,这在i / tv / watchOS应用程序或Objective-C应用程序中不起作用):
NSViewController
这将使您可以访问当前正在显示的ViewController,以及您需要的任何IBActions / Outlets。