FWPluginManager


@interface FWPluginManager : NSObject

插件管理器类。支持插件冷替换(使用插件前)和热替换(先释放插件)

Note

和Mediator对比如下: Plugin:和业务无关,侧重于工具类、基础设施、可替换,比如Toast、Loading等 Mediator: 和业务相关,侧重于架构、业务功能、模块化,比如用户模块,订单模块等
  • 单例插件加载器,加载未注册插件时会尝试调用并注册,block返回值为register方法object参数

    Declaration

    Objective-C

    @property (class, nonatomic, readonly) FWLoader<Protocol *, id> *_Nonnull sharedLoader;
  • 注册单例插件,仅当插件未使用时生效,插件类或对象必须实现protocol

    Declaration

    Objective-C

    + (BOOL)registerPlugin:(nonnull Protocol *)pluginProtocol
                withObject:(nonnull id)object;
  • 预置单例插件,仅当插件未注册时生效,插件类或对象必须实现protocol

    Declaration

    Objective-C

    + (BOOL)presetPlugin:(nonnull Protocol *)pluginProtocol
              withObject:(nonnull id)object;
  • 取消插件注册,仅当插件未使用时生效

    Declaration

    Objective-C

    + (void)unregisterPlugin:(nonnull Protocol *)pluginProtocol;
  • 延迟加载插件对象,调用后不可再注册该插件

    Declaration

    Objective-C

    + (nullable id)loadPlugin:(nonnull Protocol *)pluginProtocol;
  • 释放插件对象并标记为未使用,释放后可重新注册该插件

    Declaration

    Objective-C

    + (void)unloadPlugin:(nonnull Protocol *)pluginProtocol;