测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最后版本 | 2016年12月 |
SPM支持SPM | ✗ |
由 Jan Bartel 维护。
依赖 | |
VIPERS-Router-Protocol | >= 0 |
VIPERS-Converter-Protocol | >= 0 |
由iOS应用程序框架'VIPER'使用的路由实现。
首先是一个非常抽象的定义(实用信息将在之后找到;)
路由是一个对象,它将可路由项(一个符合空协议RoutableProtocol的对象)映射到特定的Route-Description(一个符合空协议RouteDescriptionProtocol的对象)。因此,它使用RouteDefinition(一个符合空协议RouteDefinitionProtocol的对象)从Routable映射到RouteDescription。因此,路由可以将Routeable转换为RouteDescription,并且可以额外运行一个接受RouteDescription作为参数的闭包。
路由类中的路由实现可以使用任何对象类型作为RouteDefinition,Routable或RouteDescription,只要存在RouteDefinition定义的映射,该映射将Routable映射到RouteDescription。
为了更加实用,VIPERS在VIPERS中的默认RouterProtocol实现是DefaultRouter。默认路由将可路由字符串映射到包含路由标识符(可路由字符串)和一些从中提取的参数的DefaultRoute。
它应该看起来是这样的
let router = DefaultRouter()
let routeDefinition : String = "/testRoute/:id"
do {
try router.addRouteDefinition(routeDefinition) { ( route : DefaultRoute ) in
print("this block is called when router.routeAndCallHandler is called with a valid routable")
print("identifier: \(route.identifier)")
print("parameters: \(route.parameters)")
}
let route1 : DefaultRoute = try router.routeAndCallHandler("/testRoute/15")
print("route1: \(route1)")
} catch let error {
// implement your error handling here
}
要运行示例项目,克隆仓库,然后首先从Example目录中运行pod install
。
VIPERS-Router通过CocoaPods提供。要安装它,只需将以下行添加到Podfile中:
pod "VIPERS-Router"
Jan Bartel,[email protected]
VIPERS-Router在MIT许可下可用。有关更多信息,请参阅LICENSE文件。