AppDelegate
AppDelegate 解耦
安装
CaamDau 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile:
pod 'CaamDauAppDelegate'
pod 'CaamDau/AppDelegate'
AppDelegate
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
lazy var composite: AppComposite = {
return AppComposite([
AppConfig(),
AppWindow(window),
AppUM(),
AppPay()
])
}()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return composite.application(application, didFinishLaunchingWithOptions:launchOptions)
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return composite.application(app, open: url, options: options)
}
}
AppDelegate 模块
class AppWindow: AppProtocol {
var window: UIWindow?
init(_ win: UIWindow?) {
window = win
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let vc = VC_Tab.show()
window?.rootViewController = vc
window?.makeKeyAndVisible()
return true
}
}
class AppConfig: AppProtocol {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return true
}
}
class AppPay: AppProtocol {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return true
}
}
作者
liucaide, [email protected]
许可协议
CaamDau适用于MIT许可协议。更多信息请参阅LICENSE文件。