Я хочу обновить номер значка приложения, суммируя все количество значков.Следующее - моя функция.Проблема в том, что счетчик не синхронизирован, так как я получаю значения счетчика из API, а замыкания делают его не синхронизированным.updateBadgeCounts () будет вызываться много раз во время использования приложения.
Как мне заставить это работать?
extension UIViewController {
func updateBadgeCounts() {
fetchValue1() { (result, error) in
UIApplication.shared.applicationIconBadgeNumber = result!.data!.count!
}
fetchValue2() { (result, error) in
UIApplication.shared.applicationIconBadgeNumber += result!.data!.count!
}
}
}
Вызов выше func
class MainTabBarController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
// Do other stuff...
DispatchQueue.main.async() {
self.updateBadges()
}
}
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
DispatchQueue.main.async() {
self.updateBadges()
}
}
}