AMRouter 0.3.0

AMRouter 0.3.0

Arthur 维护。



AMRouter 0.3.0

  • 作者:
  • Arthur

AMRouter

Build Status Coverage Status Version License Platform

示例

要运行示例项目,请先克隆仓库,然后从 Example 目录中运行 pod install

要求

iOS 9.0

安装

AMRouter 可通过 CocoaPods 获取。要安装它,只需在 Podfile 中添加以下行:

pod 'AMRouter'

用法

  1. 创建一个类,它的命名格式应该是这样的: ShareComponentMessageComponent

    如果您的模块功能是分享,则应该创建一个名为 ShareComponent 的文件。

    例如

    #import <Foundation/Foundation.h>
    @interface MessageComponent : NSObject
    @end
  2. 创建一个协议文件,并定义您希望类(即刚刚创建的)展开的方法,例如

    @protocol MessageComponentInterface <NSObject>
    @required
    - (BOOL)notificationEnabled;
    @end

    现在让在第1步中创建的类遵守您刚刚创建的协议,现在应该是这样的

    #import <Foundation/Foundation.h>
    #import "MessageComponentInterface.h"
    @interface MessageComponent : NSObject <MessageComponentInterface>
    @end
  3. 现在,接下来是第3步,非常重要的一步。创建一个类为 AMComponent 的分类文件。并创建一个公共类方法,如下所示

    #import <AMRouter/AMRouter.h>
    #import "MessageComponentInterface.h"
    @interface AMComponent (Message)
    + (id<MessageComponentInterface>)message;
    @end
        
    #import "AMComponent+Message.h"
    static NSString * const kTargetName = @"Message";
    @implementation AMComponent (Message)
    + (id<MessageComponentInterface>)message {
        return [self targetWithName:kTargetName
                        classPrefix:nil
                componentNameSuffix:nil
                        shouldCache:YES];
    }
    @end
  4. 现在创建两个pods

    1. 一个pods,它的名字是 XxxComponentInterface,它应该包含这三个文件

      XxxComponentInterface.h(它也是一个协议文件),AMComponent+Xxx.hAMComponent+Xxx.m。并让这个pods依赖于 AMRouter

    2. 第二个是 XxxComponent,它应该包含 XxxComponent.hXxxComponent.m 以及组件中其他的必要文件。并让这个pods依赖于 XxxComponentInterface

  5. 🎉完成了!现在你可以在另一个模块中导入这个功能,导入方式如下

    BOOL enabled = [[AMComponent message] notificationEnabled];

    只需要在 Podfile 中依靠一个pods即可,如下

    pod 'XxxComponentInterface'

    你只需要在主项目中导入 Interface pods 和 Component pods

    你只需要在 OneComponent pods 中导入1个 AnotherComponentInterface pods

作者

archmagees, [email protected]

许可证

AMRouter 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。