是否有可能以某种方式观察UIApplication.sharedApplication()swift的属性?

我需要跟踪UIApplication.sharedApplication().applicationIconBadgeNumber以基于该数字更新我的应用程序UI,但是只要更改此属性,用户界面就不会受到影响。

我的代码与此有关:

private var badgeCount: String = String(UIApplication.sharedApplication().applicationIconBadgeNumber)

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.notificationsButton.setTitle(self.badgeCount, forState: .Normal)
}

最佳答案

该解决方案可能适用于您通过扩展将iconBadgeNumber计算的变量添加到UIApplication的情况,它将设置实际变量并通知您的应用更改

extension UIApplication
{
  var iconBadgeNumber:Int { set{self.applicationIconBadgeNumber = iconBadgeNumber
            NSNotificationCenter.defaultCenter().postNotificationName("BageNumberChanged", object: nil)
        } get{return self.applicationIconBadgeNumber}}
}

//Add this at Observer
NSNotificationCenter.defaultCenter().addObserver(self, selector: #Selector(Controller.Method), name: "BageNumberChanged", object: nil)

关于ios - swift 观察UIApplication属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36422013/

10-11 23:08