Наблюдение за событиями NotificationQueue - PullRequest
0 голосов
/ 22 октября 2019

У меня есть UITableView в виде в моем приложении для iOS. Я хочу перезагрузить таблицу, когда приложение возвращается на передний план. Я попытался добавить наблюдателя в viewDidLoad, но события NotificationCenter принимаются синхронно, поэтому applicationWillEnterForeground вызывается только после завершения какой-либо другой операции синхронизации.

override func viewDidLoad() {
    super.viewDidLoad()

    NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive), 
        name: UIApplication.willEnterForegroundNotification, object: nil)
}

@objc func applicationWillEnterForeground() {
    tableView.reloadData()
}

Затем я заменил наблюдателяс этим, так что он работает асинхронно. Но это тоже не сработало.

NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification, 
    object: nil, queue: OperationQueue.main, using: self.applicationWillEnterForeground(notification:))

Я знаю, что могу использовать NotificationQueue, как показано ниже, но как я могу добавить наблюдателя?

let notification = Notification(name: UIApplication.willEnterForegroundNotification)
NotificationQueue.default.enqueue(notification, postingStyle: .asap)

ОБНОВЛЕНИЕ:

Я понял, что applicationWillEnterForeground в AppDelete также вызывается только после завершения операции синхронизации. Это нормальное поведение?

...