将应用程序委托事件(例如:applicationWillTerminate)传递给我的自定义类。
将应用程序委托事件(例如:applicationWillTerminate)传递给我的自定义类。
我正在创建一个应用程序,我创建了自定义静态类,我希望在此类中捕获应用程序级别的事件,如(applicationDidBecomeActive,applicationWillResignActive和applicationWillTerminate)。
例如:
我想在我的自定义类中设置一个名为:IS_ACTIVE的变量,默认为false。
class CustomClass {
static var IS_ACTIVE: Bool = false;
}
当发生applicationDidBecomeActive事件时,我想将IS_ACTIVE设置为true,
目前我是通过"AppDelegate.swift"文件设置IS_ACTIVE,其中发生applicationDidBecomeActive事件,
但我想要的是applicationDidBecomeActive应该发生在我的自定义类中。
请在此事上帮助我。谢谢
问题原因:在这段对话中,问题出现的原因是在自定义类中添加了观察者以监听应用事件,但是并没有收到预期的结果。提问者错误地认为这个方法只适用于控制器类,而不适用于自定义类。
解决方法:在自定义类中添加观察者监听应用事件时,需要确保以下几点:
1. 使用正确的通知中心,如NotificationCenter.default。
2. 使用正确的选择器来处理事件,如#selector(self.appBecomeActive)。
3. 确保使用正确的通知名称,如NSNotification.Name.UIApplicationDidBecomeActive。
4. 确保没有遗漏参数,如object设置为nil。
5. 在自定义类的deinit方法中移除观察者,以避免内存泄漏。
根据我的了解,你应该在自定义类中添加观察者来监听应用事件,类似于下面的代码:
NotificationCenter.default.addObserver(self, selector: #selector(self.appBecomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
记得在自定义类的deinit方法中移除观察者。
嗨,谢谢你的建议,但是并没有按照我预期的方式工作。我认为这个方法只适用于控制器类,而不适用于自定义类。
好的,使用默认值总是更好的:p