在ApplicationWillTerminate视图控制器是零

问题描述:

在我ApplicationWillTerminate的AppDelegate我创建了一个变量:在ApplicationWillTerminate视图控制器是零

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

我终止应用程序,该应用程序崩溃,因为“致命错误:意外发现零而展开的可选值”后。显然,我做了一些检查后,Viewcontroller是零。

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

非常感谢您

+1

什么是FirstViewController&为什么在ApplicationWillTerminate中创建它? –

+0

Gagan_iOS说什么加我怀疑'FirstViewController'是零。相反,我猜'lbl'是一个插座,当你没有从故事板实例化FirstViewController或没有从NIB加载时,这个插座是不连接的。 – thm

+0

我试图在ApplicationWillTerminate中将lbl.text另存为UserDefault,并且没有连接插座。 –

就像我说在我的评论,我无法想象firstVC是零,因为它可能是唯一的办法是,如果其init是failable,因为你不能覆盖这是不可能的UIViewController.init()与failable之一,即使如此,编译器会抱怨你不得不说print(firstVC?.lbl.text)。这说明了Swift可选类型的美妙之处。

验证:print(firstVC.lbl)应打印nil。连接插座的逻辑仅在您从故事板实例化FirstViewController或从NIB加载时运行。

不管怎么说,如果你只是创建FirstViewController一个新的实例,这将反映任何改变用户其元素“在屏幕上”,但包括lbl将其默认值的每一个元素制成。

可能的解决方案: