在 ApplicationWillTerminate Viewcontroller 中为零

In ApplicationWillTerminate Viewcontroller is nil

我在 ApplicationWillTerminate 的 AppDelegate 中创建了一个变量:

let firstVC = FirstViewController()
print(firstVC.lbl.text)

我终止应用程序后,应用程序崩溃了,因为 "fatal error: unexpectedly found nil while unwrapping an Optional value"。在我做了一些检查后,显然 Viewcontroller 为零。

有人知道如何解决这个问题吗?

非常感谢

就像我在评论中所说的那样,我无法想象 firstVC 是 nil 因为唯一可能的方法是它的 init 是可失败的,这是不可能的,因为你不能覆盖 UIViewController.init() 和一个失败的,即使这样编译器也会抱怨你不得不说 print(firstVC?.lbl.text)。这说明了 Swift 的可选类型之美。

验证:print(firstVC.lbl) 应该打印 nil。当您从故事板实例化 FirstViewController 或从 NIB 加载它时,连接出口的逻辑只是 运行。

无论如何,如果您只是创建 FirstViewController 的新实例,这将 不会 反映用户对其元素所做的任何更改 "on screen" 但每个包含 lbl 的元素将具有其默认值。

可能的解决方案: