gpt4 book ai didi

ios - UIApplicationSignificantTimeChange 通知未触发

转载 作者:行者123 更新时间:2023-11-30 12:55:40 26 4
gpt4 key购买 nike

我想使用 UIApplicationSignificantTimeChange 来检查日期何时更改,并将其封装在自己的类中,以便我可以在更多 View Controller 中轻松使用它:

public final class DayChangedObserver {
private var token: NSObjectProtocol!

public init?(handler: @escaping () -> ()) {
token = NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationSignificantTimeChange, object: self, queue: nil) { _ in
handler()
}
}

deinit {
NotificationCenter.default.removeObserver(token)
}
}

我从 View Controller 调用此代码:

override func viewDidLoad() {
super.viewDidLoad()

_ = DayChangedObserver() {
print("Day has changed")
}
}

我正在我的 iPhone 上测试此功能,并手动更改时间。但使用我的类(class)似乎不起作用。

我的实现有问题吗?因为它在我过去使用此事件时有效(没有我自己的类实现)。

编辑1:

我似乎 deinit 是在之后立即调用的,所以我使用实例变量来保持强引用,现在它不再是 deinit 了,但仍然没有工作。

最佳答案

object: self 改为 object: nil,试试吧。

关于ios - UIApplicationSignificantTimeChange 通知未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40428828/

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