gpt4 book ai didi

swift - 每次加载 View 时都会触发UserDefaults.didChangeNotification

转载 作者:行者123 更新时间:2023-11-30 12:57:52 25 4
gpt4 key购买 nike

class ViewController: NSViewController

class ViewController: NSViewController {

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
}

override func viewWillAppear() {
super.viewWillAppear()

NotificationCenter.default.addObserver(self, selector: #selector(userDefaultsDidChange), name: UserDefaults.didChangeNotification, object: nil)
}

override func viewWillDisappear() {
super.viewWillDisappear()

NotificationCenter.default.removeObserver(self, name: UserDefaults.didChangeNotification, object: nil)
}

override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}

func userDefaultsDidChange() {
print("user defaults did change.")
}

}


没有其他与 UserDefaults相关的代码。应用启动时, UserDefaults.didChangeNotification触发,当我触摸包含ViewController的窗口时, UserDefaults.didChangeNotification再次触发。

我不知道为什么会这样,因为什么都没有改变。

-------------------这是一个错误-------------------

我通过TSI与苹果公司联系,苹果公司的人建议我对此提交一个错误。是的 rdar://28928098

最佳答案

尝试在您的viewDidLoad()中调用它

override func viewDidLoad() {
super.viewDidLoad()

NotificationCenter.default.addObserver(self, selector: #selector(userDefaultsDidChange), name: UserDefaults.didChangeNotification, object: nil)
// Do any additional setup after loading the view.
}

override func viewWillAppear() {
super.viewWillAppear()


}

关于swift - 每次加载 View 时都会触发UserDefaults.didChangeNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40204330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com