用于iOS应用程序框架'VIPERS'的路线器实现的协议。
一开始是一个非常抽象的定义(实际信息见后;)
路由器是一个对象,它将可路由项(一个遵守空协议RoutableProtocol的对象)映射到一个特定的路由描述(一个遵守空协议RouteDescriptionProtocol的对象)。因此,它使用路由定义(一个遵守空协议RouteDefinitionProtocol的对象)从可路由映射到路由描述。因此,路由器可以将可路由转换为路由描述,并且可以运行一个闭包,该闭包将路由描述作为参数。
让我们更实际一些,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
}
要运行示例项目,请克隆仓库,然后首先从示例目录中运行pod install
VIPERS-Router-Protocol可通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile
pod "VIPERS-Router-Protocol"
Jan Bartel, [email protected]
VIPERS-Router-Protocol在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。