Classes

The following classes are available globally.

  • 自动加载器,处理swift不支持load方法问题

    Note

    本方案采用objc扩展方法实现,相对于全局扫描类方案性能高(1/200),使用简单 使用方法:新增FWAutoloader扩展objc类方法,以load开头即会自动调用,注意方法名不要重复,建议load+类名+扩展名
    See more

    Declaration

    Objective-C

    @interface FWAutoloader : NSObject
    @objc extension FWAutoloader: FWAutoloadProtocol

FWLogger

  • 日志记录类。支持设置全局日志级别和自定义FWLogPlugin插件

    See more

    Declaration

    Objective-C

    @interface FWLogger : NSObject

FWObjectWrapper

  • 框架包装器

    注意:当包装器方法中存在异步调用或者需要监听通知时,不能直接使用self,因为包装器随时可被释放。 可视情况使用base内部分类、weakBase或者内部target等方式解决,代码示例: __weak NSObject *weakBase = self.base; [self asyncMethod:^(){ [weakBase.fw syncMethod]; }];

    [self.base innerAsyncMethod];

    [self.base addTarget:self.innerTarget action:action forControlEvents:controlEvents];

    See more

    Declaration

    Objective-C

    @interface FWObjectWrapper : NSObject

FWWrapperCompatible

FWLayoutChain

  • 视图链式布局类

    Note

    如果约束条件完全相同,会自动更新约束而不是重新添加。 另外,默认布局方式使用LTR,如果需要RTL布局,可通过fwAutoLayoutRTL统一启用
    See more

    Declaration

    Objective-C

    
    @interface FWLayoutChain : NSObject

FWLocationManager

  • 位置服务

    Note

    注意:Info.plist需要添加NSLocationWhenInUseUsageDescription项 如果请求Always定位,还需添加NSLocationAlwaysUsageDescription项和NSLocationAlwaysAndWhenInUseUsageDescription项 iOS11可通过showsBackgroundLocationIndicator配置是否显示后台定位指示器
    See more

    Declaration

    Objective-C

    @interface FWLocationManager : NSObject

FWLogPluginImpl

FWMediator

FWModuleBundle

  • 业务模块Bundle基类,各模块可继承

    See more

    Declaration

    Objective-C

    @interface FWModuleBundle : NSObject

FWClassWrapper

  • 框架类包装器

    注意:当包装器方法中存在异步调用或者需要监听通知时,不能直接使用self,因为包装器随时可被释放。 可视情况使用base内部分类、weakBase或者内部target等方式解决,代码示例: __weak NSObject *weakBase = self.base; [self asyncMethod:^(){ [weakBase.fw syncMethod]; }];

    [self.base innerAsyncMethod];

    [self.base addTarget:self.innerTarget action:action forControlEvents:controlEvents];

    See more

    Declaration

    Objective-C

    @interface FWClassWrapper : NSObject

FWWeakProxy

  • 弱引用代理类,用于解决NSTimer和CADisplayLink中的循环引用target问题(默认NSTimer会强引用target,直到invalidate)

    See more

    Declaration

    Objective-C

    @interface FWWeakProxy : NSProxy

FWWeakObject

  • 弱引用对象容器类,用于解决关联对象weak引用等

    See more

    Declaration

    Objective-C

    @interface FWWeakObject : NSObject

FWBlockProxy

FWDelegateProxy

  • 事件协议代理基类,可继承重写事件代理方法

    See more

    Declaration

    Objective-C

    @interface FWDelegateProxy : NSObject

FWMulticastDelegate

FWRouterContext

  • URL路由上下文

    See more

    Declaration

    Objective-C

    @interface FWRouterContext : NSObject <NSCopying>

FWRouter

FWState

  • 状态类

    See more

    Declaration

    Objective-C

    @interface FWState : NSObject

FWStateEvent

FWStateTransition

FWStateMachine

FWTask

  • 任务基类

    See more

    Declaration

    Objective-C

    @interface FWTask : NSOperation

FWTaskManager

  • 任务管理器,兼容NSBlockOperation和NSInvocationOperation

    See more

    Declaration

    Objective-C

    @interface FWTaskManager : NSObject

FWThemeManager

  • 主题管理器,iOS13+可跟随系统改变

    Note

    框架默认只拦截了UIView|UIViewController|UIScreen|UIImageView|UILabel类,满足条件会自动触发fwThemeChanged;如果不满足条件或者拦截未生效,需先设置主题上下文fwThemeContext才能生效 注意事项:iOS13以下默认不支持主题切换;如需支持,请使用fwColor相关方法
    See more

    Declaration

    Objective-C

    @interface FWThemeManager : NSObject
  • 主题动态对象,可获取当前主题静态对象

    See more

    Declaration

    Objective-C

    @interface FWThemeObject<__covariant ObjectType> : NSObject

FWAuthorizeManager

  • 权限管理器。由于打包上传ipa时会自动检查隐私库并提供Info.plist描述,所以默认关闭隐私库声明

    开启指定权限方法: 一、Pod项目:添加pod时同时指定 pod ‘FWFramework’, :subspecs => [‘Contacts’] 二、SPM项目:添加依赖时选中target FWFrameworkContacts

    See more

    Declaration

    Swift

    @objcMembers
    public class FWAuthorizeManager : NSObject
  • Keychain管理器

    See more

    Declaration

    Swift

    @objcMembers
    public class FWKeychainManager : NSObject
  • 通知管理器

    See more

    Declaration

    Swift

    @objcMembers
    public class FWNotificationManager : NSObject, UNUserNotificationCenterDelegate
  • 版本管理器

    See more

    Declaration

    Swift

    @objcMembers
    public class FWVersionManager : NSObject

FWLayoutChain

  • 视图链式布局类。如果约束条件完全相同,会自动更新约束而不是重新添加。 另外,默认布局方式使用LTR,如果需要RTL布局,可通过fwAutoLayoutRTL统一启用

    See more

    Declaration

    Swift

    public class FWLayoutChain