【发布时间】:2017-02-20 16:59:58
【问题描述】:
我有一个 ViewController 叫做:ViewController 我有一个名为 AppDelegate 的 AppDelegate
它们不是以编程方式制作的,它们与您在 swift 中创建新应用时一样默认。
想象一下我在 ViewController 中有:
class ViewController: UIViewController {
var animal = "dog"
}
例如,我想在应用程序进入后台时打印动物值。所以在 AppDelegate 我有:
func applicationDidEnterBackground(_ application: UIApplication) {
var ViewController: ViewController!
print("animal = \(myViewController.animal)")
}
我得到:致命错误:在展开可选值时意外发现 nil
如何从我的 AppDelegate 访问该值? PS:我试过google/StackOverflow的前2页
【问题讨论】:
-
这一行
var ViewController: ViewController!必须是var controller = ViewController(),然后是print("animal = \(controller.animal)") -
@ReinierMelian 不,这是错误的,因为它只是创建了一个新的视图控制器并且没有引用现有的控制器。
-
好吧@rmaddy 我知道这不是最好的方法,但我试图解释他需要的想法是在他的 ViewController 类中打印一个静态值
-
@ReinierMelian 但它非常具有误导性。您使解决方案看起来像是创建视图控制器的新实例。这根本不是真的。