Тип «UIApplication» не имеет члена «didBecomeActiveNotification»

Я пытаюсь добавить наблюдателя для UIApplication.didBecomeActiveNotification со следующим кодом:

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

но Xcode говорит Type 'UIApplication' has no member 'didBecomeActiveNotification', несмотря на то, что это официально задокументировано как константа класса UIApplication. Что я делаю неправильно?


person Alexander Vasenin    schedule 28.07.2018    source источник
comment
Это зависит от используемого SDK. В документации вы должны показать изменения API   -  person vadian    schedule 28.07.2018
comment
@vadian - FYI: я думаю, что Apple изменила страницы, чтобы они больше не отображали изменения API.   -  person benc    schedule 06.02.2021
comment
@benc Я знаю, что изменения API отображаются после WWDC, когда вводится новый SDK.   -  person vadian    schedule 06.02.2021
comment
Не забудьте: импортировать UIKit   -  person landonandrey    schedule 07.04.2021


Ответы (2)


Когда вы используете Xcode 10, в Настройки сборки, если для параметра Языковая версия Swift установлено значение Swift 4, вы должны написать:

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

Если установлено значение Swift 4.2, используйте вместо этого:

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

Вы должны изменить имя уведомления на .UIApplicationDidBecomeActive следующим образом:

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

Судя по всему, didBecomeActiveNotification работает только для iOS 12 SDK.

person Alexander Vasenin    schedule 28.07.2018