当我在函数中将其设置为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"
?