为什么整数" 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"要印刷,但它没有。为什么?
答案 0 :(得分:0)
您是否尝试在viewWillAppear()
上设置断点以验证它是否在您希望被调用时被调用,并且该值是您期望的值?
您是否正在通知Notification Center willFinishLaunchingWithOptions
,就像@daskblinkenlight所说的那样?
我假设在viewWillAppear
的末尾应该有另一个紧密的大括号?是否会在预期时打印"viewWillAppear"
?