是否有可能以某种方式观察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/