当我在函数中将其设置为1时,为什么整数“ int1”在“ viewWillAppear”中为nil?

var int1 : Int!

override func viewWillAppear(_ animated: Bool) {

    print("viewWillAppear")
    if int1 != nil {

        print("int1 != nil")

    }
override func viewDidLoad() {
    super.viewDidLoad()

    print("viewDidLoad")

    NotificationCenter.default.addObserver(self, selector: #selector(ViewController.willFinishLaunchingWithOptions), name: NSNotification.Name.UIApplicationDidFinishLaunching, object: nil)

}

func willFinishLaunchingWithOptions(notification: NSNotification){
    print("Launching!")
    self.int1 = 1
}


在控制台中,它打印为“正在启动!”。当应用程序启动时第一次加载视图时,我知道int1为nil,但是当我选择切换到另一个视图控制器并返回时,我期望打印“ int1!= 1”,但不会。为什么?

最佳答案

您是否尝试过在viewWillAppear()上设置一个断点,以验证是否希望在调用它时调用它,并且该值就是您期望的值?

您是从通知中心致电willFinishLaunchingWithOptions,就像@daskblinkenlight所说吗?

我假设viewWillAppear的末尾应该还有另一个大括号吗?是否按预期打印"viewWillAppear"

09-27 04:16