在函数中将其设置为1后,在视图中显示为零 - Swift

时间:2017-01-10 20:57:32

标签: ios swift int

为什么整数" int1" nil in" viewWillAppear"当我在一个函数中将它设置为1时?

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为零,但当我转向另一个视图控制器并返回时,我期待" int1!= 1"要印刷,但它没有。为什么?

1 个答案:

答案 0 :(得分:0)

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

您是否正在通知Notification Center willFinishLaunchingWithOptions,就像@daskblinkenlight所说的那样?

我假设在viewWillAppear的末尾应该有另一个紧密的大括号?是否会在预期时打印"viewWillAppear"