Type 'UIApplication' has no member 'didBecomeActiveNotification'

Alexander Vasenin picture Alexander Vasenin · Jul 28, 2018 · Viewed 7.2k times · Source

I'm trying to add observer for UIApplication.didBecomeActiveNotification with following code:

NotificationCenter.default.addObserver(forName: UIApplication.didBecomeActiveNotification, object: nil, queue: nil) { _ in /* some code */ }

but Xcode says Type 'UIApplication' has no member 'didBecomeActiveNotification' despite it's officially documented as UIApplication class constant. What I'm doing wrong?

Answer

Daniel T picture Daniel T · Sep 13, 2018

When you are using Xcode 10, in Build Settings, if you set Swift Language Version to be Swift 4, you should write:

NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive, object: nil, queue: nil) { _ in /* some code */ }

If it is set to be Swift 4.2, use this instead:

NotificationCenter.default.addObserver(forName: UIApplication.didBecomeActiveNotification, object: nil, queue: nil) { _ in /* some code */ }