SSUtilitiesiOS
这是一个用于存放我所有小东西的地方。
App 生命周期监听器
这里有两种生命周期:AppDelegate (UIKit) 和 scene phase (Swift UI)。由于 scene phase 目前仍不能完全替代 AppDelegate 中的所有回调,因此您可能需要重新考虑使用它。为了使监听器正常工作,您需要做以下两件事之一
- 如果您想使用 AppDelegate,则您的 AppDelegate 类必须扩展
SSAppDelegate
- 如果您使用 scene phase,则需要在您的视图(如果您删除带有此功能的视图,则需要在新的视图中再次调用它)上调用
adaptToAppEventEmitter
。如果您想监听 app did launch,您还需要执行第一个选项,并提供@UIApplicationDelegateAdaptor
。
注意:如果您使用具有 @UIApplicationDelegateAdaptor
的 SwiftUI 生命周期,则存在一个 bug,即 AppDelegate 的方法在 appDidLaunchWithOptions
之后将不会被调用,因此您必须使用 scene phase 作为补充。
如何监听应用生命周期事件。
您可以有多个监听器,只需使用必要的方法实现 SSAppEventObserver
即可。
如果您的观察者有appDidLaunch方法,您必须使用AppDelegate作为主生命周期的实现,或者作为 @UIApplicationDelegateAdaptor
,同时,在您的主应用程序包中,您需要创建一个名为 AppEventObservers.plist
的plist文件,在该文件中,将根节点设为数组,并将每个观察者的类名添加到该数组中。
除此之外,您可以通过调用 SSAppEventManager.shared.registerObserver
或 SSAppEventManager.shared.unregisterObserver
直接注册/注销观察者。
定时器
默认的Timer
在后台状态下无法正常工作,所以我编写了这个类。其使用方法与Timer
类似,但可以在后台状态下工作。
其他内容
我还这里有一些其他的小东西,如果需要,您可以进行探索。