- 面向组件协议
- 组件获取实例为协议类型
注: SPM 每一个组件最终生成的都是 framwork库 意味着组件存在命名空间(优点)
To run the example project, clone the repo, and run pod install
from the Example directory first.
AprilAlertView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'ZPPRouter'
Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Xcode 11+ is required to build ZPPRouter using Swift Package Manager.
To integrate ZPPRouter into your Xcode project using Swift Package Manager, add it to the dependencies value of your Package.swift
:
dependencies: [
.package(url: "https://github.com/ZPP506/ZPPRouter.git", .upToNextMajor(from: "0.1.1"))
]
- 定义 xxxProtocol
public protocol xxxProtocol: UIViewController {
}
- 实现获取方法
extension JLRouteProtocol where Self == ZPPRouter<xxxProtocol> {
@discardableResult
public static func makeDestination(config: ((xxxProtocol) -> Void)) -> xxxProtocol {
let item = makeDestination()
config(item)
return item
}
@discardableResult
public static func makeDestination() -> xxxProtocol {
return UIViewController()
}
}
extension UIViewController: xxxProtocol {}
- 获取 UIViewController
let vc = ZPPRouter<xxxProtocol>.makeDestination()
或者
ZPPRouter<xxxProtocol>.makeDestination {
$0.view.backgroundColor = .red
}
Dome: https://github.com/ZPP506/ZPPRouter
- 引用所有组件
- 定义组件对外协议
- 定义获取组件方法