Latest 0.0.4
Homepage https://github.com/HJaycee/KSRouter
License MIT
Platforms ios 7.0, requires ARC
Authors

支持自动注册的的iOS组件化解决方案,用于多端复用等场景。

  • 自动注册式的安全检查
  • 宏注册并生成常量路由
  • 支持任意的返回值类型
  • 支持回调形式的调用方式
  • 可组件间调用
  • 支持子仓库组件间调用

CocoaPods

pod 'KSRouter'

简单例子

假设ModuleA组件内部实现了run功能

1. 注册组件

@KSRouterRegister(ModuleA, run)

2. 调用组件

// "_ModuleA_run_"路由由编译器自动生成,支持代码提示

[KSRouter routerToURI:_ModuleA_run_ args:nil];

更多例子

PrefixHeader.pch文件中引入#import "KSRouterDefine.h"

KSRouterDefine.h

#import "KSRouter.h"

@KSRouterRegister(ModuleA, runDirectly)
@KSRouterRegister(ModuleA, getSomeValue)
@KSRouterRegister(ModuleA, runWithCallBack)
@KSRouterRegister(ModuleA, callOtherModule)

@KSRouterRegister(ModuleB, run)

ViewController.m

// 1 直接调用
[KSRouter routerToURI:_ModuleA_runDirectly_ args:nil];

// 2 带返回值的调用方式
__unused id result = [KSRouter routerToURI:_ModuleA_getSomeValue_ args:nil];

// 3 带回调的调用方式
void(^callback)(BOOL result) = ^(BOOL result){

};

[KSRouter routerToURI:_ModuleA_runWithCallBack_ args:@{@"callback": callback}];

// 4 调用其他组件
[KSRouter routerToURI:_ModuleA_callOtherModule_ args:nil];

ModuleA.m

- (void)runDirectly:(NSDictionary *)arg {
    NSLog(@"直接调用");
}

- (id)getSomeValue:(NSDictionary *)arg {
    NSLog(@"带返回值的调用方式");

    return @1;
}

- (void)runWithCallBack:(NSDictionary *)arg {
    NSLog(@"带回调的调用方式");

    if (arg[@"callback"]) {
        void(^callback)(BOOL result) = arg[@"callback"];
        callback(YES);
    }
}

- (void)callOtherModule:(NSDictionary *)arg {
    NSLog(@"调用其他组件");

    [KSRouter routerToURI:_ModuleB_run_ args:nil];
}

ModuleB.m

- (void)run:(NSDictionary *)arg {
}

Latest podspec

{
    "name": "KSRouter",
    "version": "0.0.4",
    "summary": "u652fu6301u81eau52a8u6ce8u518cu7684u7684iOSu7ec4u4ef6u5316u89e3u51b3u65b9u6848",
    "homepage": "https://github.com/HJaycee/KSRouter",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "HJaycee": "[email protected]"
    },
    "platforms": {
        "ios": "7.0"
    },
    "source": {
        "git": "https://github.com/HJaycee/KSRouter.git",
        "tag": "0.0.4"
    },
    "source_files": "KSRouter/KSRouter/*.{h,m}",
    "requires_arc": true
}

Pin It on Pinterest

Share This