为什么通知观察者在监控 iOS 设备的电源模式状态时没有正确触发选择器功能?

Why is the notification observer not triggering the selector function correctly when monitoring the iOS device's power mode status?

提问人:Rahul N 提问时间:5/30/2023 更新时间:5/30/2023 访问量:34

问:

添加了通知观察器,用于监控 iOS 设备的电源模式状态(是否为低功耗模式)未正确触发选择器功能。

我添加了一个通知观察器来监视电源模式状态,如下所示:

NotificationCenter.default.addObserver(self, selector: #selector(handleSystemPowerStateChange), name: Notification.Name.NSProcessInfoPowerStateDidChange, object: nil)

上面的代码行在视图控制器的 viewDidLoad() 中被调用

对应选择器函数的代码如下:

    @objc func handleSystemPowerStateChange(_ notification: Notification) {
        
       if ProcessInfo.processInfo.isLowPowerModeEnabled {
            print("Low power mode enabled")
        } else {
            print("Low power mode disabled")
        }
    }

预期的行为是,每当电源模式(低功率到正常/正常到低功耗模式)发生变化时,都必须调用此函数,并应根据电源模式打印相应的语句。

然而,事实并非如此。当我新安装内部版本时,当电源模式更改时,永远不会调用此函数。 在我通过进行任何微小的代码更改(例如在之前添加额外的空行或重新添加观察者)重新安装构建后,它似乎运行良好(显然无法解释的行为)。NotificationCenter.default.addObserver(self, selector: #selector(handleSystemPowerStateChange), name: Notification.Name.NSProcessInfoPowerStateDidChange, object: nil)

注意:应用程序位于前台。

我该如何解决这个问题?这似乎与添加通知观察者的方式或选择器函数的定义无关。

iOS Swift Xcode NSEnception Center 通知中心

评论


答: 暂无答案