VIPERS-Router 0.2.0

VIPERS-Router 0.2.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后版本2016年12月
SPM支持SPM

Jan Bartel 维护。



 
依赖
VIPERS-Router-Protocol>= 0
VIPERS-Converter-Protocol>= 0
 

  • Jan Bartel

由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文件。