Initial commit

This commit is contained in:
ifish
2017-08-15 16:59:01 +08:00
commit bdc83e07ef
5766 changed files with 423223 additions and 0 deletions
BIN
View File
Binary file not shown.
@@ -0,0 +1,30 @@
//
// IMOBFPlugin.h
// MOBFoundation
//
// Created by fenghj on 15/6/2.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 插件协议
*/
@protocol IMOBFPlugin <NSObject>
@required
/**
* 插件加载时调用
*
* @param key 插件标识
*/
- (void)load:(NSString *)key;
/**
* 插件卸载时调用
*/
- (void)unload;
@end
@@ -0,0 +1,79 @@
//
// MOBFApplicationUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-20.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 应用工具类
*/
@interface MOBFApplication : NSObject
/**
* 获取应用名称
*
* @return 应用名称
*/
+ (NSString *)name;
/**
* 获取应用包名
*
* @return 包名
*/
+ (NSString *)bundleId;
/**
* 获取应用编译版本
*
* @return 编译版本
*/
+ (NSString *)buildVersion;
/**
* 获取应用版本号
*
* @return 应用版本号
*/
+ (NSString *)shortVersion;
/**
* 获取应用版本号
*
* @return 版本号
*/
+ (NSString *)version __deprecated_msg("use [buildVersion] method instead");
/**
* 检测是否启用ATS功能
*/
+ (BOOL)enabledATS;
/**
* 获取应用运行经过的时间(单位:毫秒)
*
* @return 经过时间
*/
+ (uint64_t)elapsedTime;
/**
* 判断链接是否能打开
*
* @param url 链接
*
* @return YES 可以打开,NO 不能打开
*/
+ (BOOL)canOpenUrl:(NSURL *)url;
/**
* 打开链接
*
* @param url 链接
*/
+ (void)openUrl:(NSURL *)url;
@end
+35
View File
@@ -0,0 +1,35 @@
//
// MOBFColorUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-19.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 颜色工具类
*/
@interface MOBFColor : NSObject
/**
* 获取颜色对象
*
* @param rgb RGB颜色值
*
* @return 颜色对象
*/
+ (UIColor *)colorWithRGB:(NSUInteger)rgb;
/**
* 获取颜色对象
*
* @param argb ARGB颜色值
*
* @return 颜色对象
*/
+ (UIColor *)colorWithARGB:(NSUInteger)argb;
@end
+188
View File
@@ -0,0 +1,188 @@
//
// MOBFDataUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-16.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonCrypto.h>
#import <zlib.h>
/**
* 数据工具类
*/
@interface MOBFData : NSObject
/**
* 使用HMAC-SHA1进行加密
*
* @param data 原始数据
* @param key 密钥
*
* @return 加密后数据
*/
+ (NSData *)hmacSha1Data:(NSData *)data forKey:(NSData *)key;
/**
* 对数据进行MD5签名
*
* @param data 原始数据
*
* @return 签名后数据
*/
+ (NSData *)md5Data:(NSData *)data;
/**
* 对数据进行AES128加密
*
* @param data 原始数据
* @param key 密钥
* @param encoding 字符串编码
*
* @return 加密后数据
*/
+ (NSData *)aes128EncryptData:(NSData *)data
key:(NSString *)key
encoding:(NSStringEncoding)encoding;
/**
* 对数据进行AES128解密
*
* @param data 原始数据
* @param key 密钥
* @param encoding 字符串编码
*
* @return 解密后数据
*/
+ (NSData *)aes128DecryptData:(NSData *)data
key:(NSString *)key
encoding:(NSStringEncoding)encoding;
/**
* 对数据进行AES128加密
*
* @param data 原始数据
* @param key 密钥
* @param options 选项
*
* @return 加密后数据
*/
+ (NSData *)aes128EncryptData:(NSData *)data
key:(NSData *)key
options:(CCOptions)options;
/**
* 对数据进行AES128解密
*
* @param data 原始数据
* @param key 密钥
* @param options 选项
*
* @return 解密后数据
*/
+ (NSData *)aes128DecryptData:(NSData *)data
key:(NSData *)key
options:(CCOptions)options;
/**
* 使用GZip压缩数据
*
* @param data 原始数据
*
* @return 压缩后数据
*/
+ (NSData *)compressDataUsingGZip:(NSData *)data;
/**
* 使用GZip解压缩数据
*
* @param data 原始数据
*
* @return 解压缩后数据
*/
+ (NSData *)uncompressDataUsingGZip:(NSData *)data;
/**
* 对数据进行MD5签名
*
* @param data 原始数据
*
* @return 签名后字符串
*/
+ (NSString *)stringByMD5Data:(NSData *)data;
/**
* 使用BASE64编码数据
*
* @param data 原始数据
*
* @return 编码后字符串
*/
+ (NSString *)stringByBase64EncodeData:(NSData *)data;
/**
* 对数据进行CRC32校验
*
* @param data 数据对象
*
* @return 校验值
*/
+ (uLong)valueByCRC32Data:(NSData *)data;
/**
* 对数据进行CRC32检验
*
* @param data 原始数据
*
* @return 检验值
*/
+ (NSString *)stringByCRC32Data:(NSData *)data;
/**
* 将数据转换成16进制字符串
*
* @param data 原始数据
*
* @return 字符串
*/
+ (NSString *)hexStringByData:(NSData *)data;
/**
* 写入一个32位整数到数据对象中
*
* @param value 整数值
* @param data 数据对象
*/
+ (void)writeInt32:(int32_t)value toData:(NSMutableData *)data;
/**
* 写入一个16位整数到数据对象中
*
* @param value 整数值
* @param data 数据对象
*/
+ (void)writeInt16:(int16_t)value toData:(NSMutableData *)data;
/**
* 读取一个16位整数
*
* @param data 数据对象
* @param offset 偏移位置
*
* @return 短整型数据
*/
+ (int16_t)readInt16FromData:(NSData *)data offset:(NSInteger)offset;
/**
* 读取一个32位整数
*
* @param data 数据对象
* @param offset 偏移位置
*
* @return 整型数据
*/
+ (int32_t)readInt32FromData:(NSData *)data offset:(NSInteger)offset;
@end
@@ -0,0 +1,100 @@
//
// MOBFDataService.h
// MOBFoundation
//
// Created by vimfung on 15-1-21.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 数据服务
*/
@interface MOBFDataService : NSObject
/**
* 获取数据服务共享实例对象
*
* @return 数据服务对象
*/
+ (MOBFDataService *)sharedInstance;
/**
* 设置共享数据
*
* @param data 数据
* @param key 标识
*/
- (void)setSharedData:(id)data forKey:(NSString *)key;
/**
* 获取共享数据
*
* @param key 标识
*
* @return 数据
*/
- (id)sharedDataForKey:(NSString *)key;
/**
* 开始缓存数据事务
*
* @param domain 数据域
*/
- (void)beginCacheDataTransForDomain:(NSString *)domain;
/**
* 结束缓存数据事务
*
* @param domain 数据域
*/
- (void)endCacheDataTransForDomain:(NSString *)domain;
/**
* 设置缓存数据
*
* @param data 数据
* @param key 标识
* @param domain 数据域
*/
- (void)setCacheData:(id)data forKey:(NSString *)key domain:(NSString *)domain;
/**
* 获取缓存数据
*
* @param key 标识
* @param domain 数据域
*
* @return 数据
*/
- (id)cacheDataForKey:(NSString *)key domain:(NSString *)domain;
/**
* 开始安全数据事务
*/
- (void)beginSecureDataTrans;
/**
* 结束安全数据事务
*/
- (void)endSecureDataTrans;
/**
* 设置安全数据
*
* @param data 数据
* @param key 标识
*/
- (void)setSecureData:(id)data forKey:(NSString *)key;
/**
* 获取安全数据
*
* @param key 标识
*
* @return 数据
*/
- (id)secureDataForKey:(NSString *)key;
@end
+124
View File
@@ -0,0 +1,124 @@
//
// MOBFDateUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-19.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 时间工具类
*/
@interface MOBFDate : NSObject
/**
* 获取时间的年份
*
* @param date 时间
*
* @return 年份
*/
+ (NSInteger)fullYearByDate:(NSDate *)date;
/**
* 获取时间的月份
*
* @param date 时间
*
* @return 月份
*/
+ (NSInteger)monthByDate:(NSDate *)date;
/**
* 获取时间的日期
*
* @param date 时间
*
* @return 日期部分
*/
+ (NSInteger)dayByDate:(NSDate *)date;
/**
* 获取时间的小时部分
*
* @param date 时间
*
* @return 小时部分
*/
+ (NSInteger)hourByDate:(NSDate *)date;
/**
* 获取时间的分钟部分
*
* @param date 时间
*
* @return 分钟部分
*/
+ (NSInteger)minuteByDate:(NSDate *)date;
/**
* 获取时间的秒部分
*
* @param date 时间
*
* @return 秒部分
*/
+ (NSInteger)secondByDate:(NSDate *)date;
/**
* 将时间转换为指定格式字符串
*
* @param date 时间
* @param format 格式字符串
*
* @return 转换后字符串
*/
+ (NSString *)stringByDate:(NSDate *)date
withFormat:(NSString *)format;
/**
* 将字符串转换为时间对象
*
* @param format 格式字符串
* @param dateString 日期时间字符串
*
* @return 时间对象
*/
+ (NSDate *)dateWithFormat:(NSString *)format
dateString:(NSString *)dateString;
/**
* 将字符串转换为时间对象
*
* @param format 格式字符串
* @param dateString 日期时间字符串
* @param locale 本地化参数
*
* @return 时间对象
*/
+ (NSDate *)dateWithFormat:(NSString *)format
dateString:(NSString *)dateString
locale:(NSLocale *)locale;
/**
* 创建日期时间对象
*
* @param year 年份
* @param month 月份
* @param date 日期
* @param hour 小时
* @param minute 分钟
* @param second 秒
*
* @return 日期时间对象
*/
+ (NSDate *)dateWithYear:(NSInteger)year
month:(NSInteger)month
date:(NSInteger)date
hour:(NSInteger)hour
minute:(NSInteger)minute
second:(NSInteger)second;
@end
+31
View File
@@ -0,0 +1,31 @@
//
// MOBFDebug.h
// MOBFoundation
//
// Created by 冯 鸿杰 on 15/2/4.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 调试工具类
*/
@interface MOBFDebug : NSObject
/**
* 输出调试日志
*
* @param format 日志格式
* @param ... 日志参数
*/
+ (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);
/**
* 观察释放对象,指定类型的被释放对象会打印在Console中。
*
* @param type 对象类型
*/
+ (void)watchDeallocObjectWithType:(Class)type;
@end
+196
View File
@@ -0,0 +1,196 @@
//
// MOBFDeviceUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-19.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 网络类型
*/
typedef NS_ENUM(NSUInteger, MOBFNetworkType)
{
/**
* 无网咯
*/
MOBFNetworkTypeNone = 0,
/**
* 蜂窝网络
*/
MOBFNetworkTypeCellular = 2,
/**
* WIFI
*/
MOBFNetworkTypeWifi = 1,
/**
* 2G网络
*/
MOBFNetworkTypeCellular2G = 3,
/**
* 3G网络
*/
MOBFNetworkTypeCellular3G = 4,
/**
* 4G网络
*/
MOBFNetworkTypeCellular4G = 5,
};
/**
IP版本
- MOBFIPVersion4: IPv4
- MOBFIPVersion6: IPv6
*/
typedef NS_ENUM(NSUInteger, MOBFIPVersion)
{
MOBFIPVersion4 = 0,
MOBFIPVersion6 = 1,
};
/**
* 设备工具类
*/
@interface MOBFDevice : NSObject
/**
* 获取网卡物理地址
*
* @return 网卡物理地址
*/
+ (NSString *)macAddress;
/**
* 获取设备型号
*
* @return 设备型号
*/
+ (NSString *)deviceModel;
/**
* 获取当前网络类型
*
* @return 网络类型
*/
+ (MOBFNetworkType)currentNetworkType;
/**
* 获取手机运营商代码
*
* @return 手机运营商代码
*/
+ (NSString *)carrier;
/**
* 获取手机运营商名称
*
* @return 运营商名称
*/
+ (NSString *)carrierName;
/**
* 获取手机运营商国家码
*
* @return 运营商国家码
*/
+ (NSString *)mobileCountryCode;
/**
* 获取手机运营商网络编号
*
* @return 运营商网络编号
*/
+ (NSString *)mobileNetworkCode;
/**
* 与当前系统版本比较
*
* @param other 需要对比的版本
*
* @return < 0 低于指定版本; = 0 跟指定版本相同;> 0 高于指定版本
*/
+ (NSInteger)versionCompare:(NSString *)other;
/**
* 判断是否已经越狱
*
* @return YES 已经越狱,NO 尚未越狱
*/
+ (BOOL)hasJailBroken;
/**
* 获取运行进程信息
*
* @return 进程信息列表
*/
+ (NSArray *)runningProcesses;
/**
* 判断当前设备是否为iPad
*
* @return YES 是,NO 否
*/
+ (BOOL)isPad;
/**
* 获取设备唯一标识
*
* @return 标识码
*/
+ (NSString *)duid;
/**
* 获取屏幕真实尺寸
*
* @return 屏幕尺寸
*/
+ (CGSize)nativeScreenSize;
/**
* 获取无线局域网的服务集标识(WIFI名称)
*
* @return 服务集标识
*/
+ (NSString *)ssid;
/**
* 获取基础服务集标识(站点的MAC地址)
*
* @return 基础服务集标识
*/
+ (NSString *)bssid;
/**
* 获取广告商ID
*
* @return 广告商ID
*/
+ (NSString *)idfa;
/**
* 获取当前语言
*
* @return 语言描述
*/
+ (NSString *)currentLanguage;
/**
* 获取设备IP地址
*
* @return IP地址
*/
+ (NSString *)ipAddress:(MOBFIPVersion)ver;
/**
* 获取开发商ID
*
* @return 开发商ID
*/
+ (NSString *)idfv;
@end
@@ -0,0 +1,63 @@
//
// MOBHttpPostedFile.h
// MOBFoundation
//
// Created by 冯 鸿杰 on 15/1/30.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* @brief HTTP上传文件
*/
@interface MOBFHttpPostedFile : NSObject
/**
* @brief 文件名称
*/
@property (nonatomic, copy) NSString *fileName;
/**
* @brief 内容类型
*/
@property (nonatomic, copy) NSString *contentType;
/**
* @brief 文件数据
*/
@property (nonatomic, retain) NSData *fileData;
/**
* @brief 内容传输编码
*/
@property (nonatomic, copy) NSString *transferEncoding;
/**
* @brief 创建上传文件
*
* @param fileName 文件名称
* @param data 文件数据
* @param contentType 内容类型
* @param transferEncoding 传输编码
*
* @return 上传文件信息
*/
+ (MOBFHttpPostedFile *)httpPostedFileByFileName:(NSString *)fileName
data:(NSData *)data
contentType:(NSString *)contentType
transferEncoding:(NSString *)transferEncoding;
/**
* @brief 创建上传文件
*
* @param path 文件路径
* @param contentType 内容类型
*
* @return 上传文件信息
*/
+ (MOBFHttpPostedFile *)httpPostedFileByPath:(NSString *)path
contentType:(NSString *)contentType;
@end
@@ -0,0 +1,222 @@
//
// MOBFHttpService.h
// MOBFoundation
//
// Created by vimfung on 15-1-20.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
@class MOBFHttpService;
/**
* GET方式
*/
extern NSString *const kMOBFHttpMethodGet;
/**
* POST方式
*/
extern NSString *const kMOBFHttpMethodPost;
/**
* DELETE方式
*/
extern NSString *const kMOBFHttpMethodDelete;
/**
* HEAD方式
*/
extern NSString *const kMOBFHttpMethodHead;
/**
* HTTP返回事件
*
* @param response 回复对象
* @param responseData 回复数据
*/
typedef void(^MOBFHttpResultEvent) (NSHTTPURLResponse *response, NSData *responseData);
/**
* HTTP错误事件
*
* @param error 错误信息
*/
typedef void(^MOBFHttpFaultEvent) (NSError *error);
/**
* HTTP上传数据事件
*
* @param totalBytes 总字节数
* @param loadedBytes 上传字节数据
*/
typedef void(^MOBFHttpUploadProgressEvent) (int64_t totalBytes, int64_t loadedBytes);
/**
* HTTP服务类
*/
@interface MOBFHttpService : NSObject
/**
* @brief 提交方式,默认为GET
*/
@property (nonatomic, copy) NSString *method;
/**
超时时间
*/
@property (nonatomic) NSTimeInterval timeout;
/**
* @brief 是否缓存回复对象,默认为YES
*/
@property (nonatomic) BOOL isCacheResponse;
/**
* 自动填充请求表单,默认为YES,如果为NO则表示使用自定义的方式发起请求。
*/
@property (nonatomic) BOOL autoFillRequestForm;
/**
* 初始化HTTP服务
*
* @param urlString URL地址字符串
*
* @return HTTP服务对象
*/
- (id)initWithURLString:(NSString *)urlString;
/**
* 初始化HTTP服务
*
* @param URL URL地址对象
*
* @return HTTP服务对象
*/
- (id)initWithURL:(NSURL *)URL;
/**
* 初始化HTTP服务
*
* @param request 请求对象
*
* @return HTTP服务对象
*/
- (id)initWithRequest:(NSURLRequest *)request;
/**
* 添加HTTP头
*
* @param header 名称
* @param value 值
*/
- (void)addHeader:(NSString *)header value:(NSString *)value;
/**
* 添加HTTP头集合
*
* @param headers 头集合
*/
- (void)addHeaders:(NSDictionary *)headers;
/**
* 添加参数
*
* @param value 参数值
* @param key 参数名字
*/
- (void)addParameter:(id)value forKey:(NSString *)key;
/**
* 添加多个参数
*
* @param parameters 参数集合
*/
- (void)addParameters:(NSDictionary *)parameters;
/**
* 添加上传文件参数
*
* @param fileData 文件数据
* @param fileName 文件名称
* @param mimeType MIME类型
* @param transferEncoding 传输编码
* @param key 参数名字
*/
- (void)addFileParameter:(NSData *)fileData
fileName:(NSString *)fileName
mimeType:(NSString *)mimeType
transferEncoding:(NSString *)transferEncoding
forKey:(NSString *)key;
/**
* 设置请求体数据,可以为NSData或者NSInputStream
*
* @param body 请求体数据
*/
- (void)setBody:(id)body;
/**
* 发送请求
*
* @param resultHandler 返回回调
* @param faultHandler 错误回调
* @param uploadProgressHandler 上传数据进度回调
*/
- (void)sendRequestOnResult:(MOBFHttpResultEvent)resultHandler
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
/**
* 取消请求
*/
- (void)cancelRequest;
/**
* 发送HTTP请求
*
* @param urlString 请求地址
* @param method 请求方式
* @param parameters 请求参数
* @param headers 请求头集合
* @param resultHandler 返回回调
* @param faultHandler 错误回调
* @param uploadProgressHandler 上传数据进度回调
*
* @return HTTP服务对象
*/
+ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString
method:(NSString *)method
parameters:(NSDictionary *)parameters
headers:(NSDictionary *)headers
onResult:(MOBFHttpResultEvent)resultHandler
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
/**
* 发送HTTP请求
*
* @param urlString 请求地址
* @param method 请求方式
* @param parameters 请求参数
* @param headers 请求头集合
* @param timeout 请求超时
* @param resultHandler 返回回调
* @param faultHandler 错误回调
* @param uploadProgressHandler 上传数据进度回调
*
* @return HTTP服务对象
*/
+ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString
method:(NSString *)method
parameters:(NSDictionary *)parameters
headers:(NSDictionary *)headers
timeout:(NSTimeInterval)timeout
onResult:(MOBFHttpResultEvent)resultHandler
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
@end
+114
View File
@@ -0,0 +1,114 @@
//
// MOBFImageUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-19.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 圆角类型
*/
typedef NS_ENUM(NSUInteger, MOBFOvalType)
{
/**
* 无圆角
*/
MOBFOvalTypeNone = 0x00,
/**
* 左上角
*/
MOBFOvalTypeLeftTop = 0x01,
/**
* 左下角
*/
MOBFOvalTypeLeftBottom = 0x02,
/**
* 右上角
*/
MOBFOvalTypeRightTop = 0x04,
/**
* 右下角
*/
MOBFOvalTypeRightBottom = 0x08,
/**
* 全部
*/
MOBFOvalTypeAll = MOBFOvalTypeLeftTop | MOBFOvalTypeLeftBottom | MOBFOvalTypeRightTop | MOBFOvalTypeRightBottom
};
/**
* 图像工具类
*/
@interface MOBFImage : NSObject
/**
* 裁剪图片
*
* @param image 原始图片
* @param rect 裁剪范围
*
* @return 裁剪后图片
*/
+ (UIImage *)clipImage:(UIImage *)image withRect:(CGRect)rect;
/**
* 将图片边角裁剪为圆角
*
* @param image 原始图片
* @param size 图像尺寸
* @param ovalWidth 圆角宽度
* @param ovalHeight 圆角高度
* @param ovalType 圆角类型
*
* @return 裁剪后图像
*/
+ (UIImage *)roundRectImage:(UIImage *)image
withSize:(CGSize)size
ovalWidth:(CGFloat)ovalWidth
ovalHeight:(CGFloat)ovalHeight
ovalType:(MOBFOvalType)ovalType;
/**
* 等比缩放图片
*
* @param image 原始图片
* @param size 缩放的图片尺寸
*
* @return 缩放后图片
*/
+ (UIImage *)scaleImage:(UIImage *)image withSize:(CGSize)size;
/**
* 获取图片对象
*
* @param name 图片名称
* @param bundle 资源包对象
*
* @return 图片对象
*/
+ (UIImage *)imageName:(NSString *)name bundle:(NSBundle *)bundle;
/**
* 通过指定视图生成图片
*
* @param view 视图对象
*
* @return 图片对象
*/
+ (UIImage *)imageByView:(UIView *)view;
/**
* 通过制定视图生成图片
*
* @param view 视图对象
* @param opaque 是否为不透明图片,YES,不透明,NO,透明
*
* @return 图片对象
*/
+ (UIImage *)imageByView:(UIView *)view opaque:(BOOL)opaque;
@end
@@ -0,0 +1,64 @@
//
// MOBFImageGetter.h
// MOBFoundation
//
// Created by fenghj on 16/1/21.
// Copyright © 2016年 MOB. All rights reserved.
//
#import "MOBFImageObserver.h"
#import "MOBFImageServiceTypeDef.h"
#import <Foundation/Foundation.h>
/**
* 图片获取器
*/
@interface MOBFImageGetter : NSObject
/**
* 获取共享图片服务实例
*
* @return 图片服务实例
*/
+ (instancetype)sharedInstance;
/**
* 是否存在图片缓存
*
* @param url 图片URL
*
* @return YES 表示图片已缓存,NO 图片未缓存
*/
- (BOOL)existsImageCacheWithURL:(NSURL *)url;
/**
* 获取图片
*
* @param url 图片路径
* @param resultHandler 返回事件
*
* @return 服务观察者
*/
- (MOBFImageObserver *)getImageWithURL:(NSURL *)url
result:(MOBFImageGetterResultHandler)resultHandler;
/**
获取图片数据
@param url 图片路径
@param resultHandler 返回事件
@return 服务观察者
*/
- (MOBFImageObserver *)getImageDataWithURL:(NSURL *)url
result:(MOBFImageDataGetterResultHandler)resultHandler;
/**
* 移除图片观察者
*
* @param imageObserver 图片观察者
*/
- (void)removeImageObserver:(MOBFImageObserver *)imageObserver;
@end
@@ -0,0 +1,21 @@
//
// MOBFImageObserver.h
// MOBFoundation
//
// Created by fenghj on 16/1/21.
// Copyright © 2016年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 图片观察者
*/
@interface MOBFImageObserver : NSObject
/**
* 图片链接
*/
@property (nonatomic, strong, readonly) NSURL *url;
@end
@@ -0,0 +1,30 @@
//
// MOBFImageServiceTypeDef.h
// MOBFoundation
//
// Created by fenghj on 15/6/8.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#ifndef MOBFoundation_MOBFImageServiceTypeDef_h
#define MOBFoundation_MOBFImageServiceTypeDef_h
@class UIImage;
/**
* 图片加载返回
*
* @param image 图片对象
* @param error 错误信息
*/
typedef void (^MOBFImageGetterResultHandler)(UIImage *image, NSError *error);
/**
* 图片加载返回
*
* @param imageData 图片数据
* @param error 错误信息
*/
typedef void (^MOBFImageDataGetterResultHandler)(NSData *imageData, NSError *error);
#endif
@@ -0,0 +1,65 @@
//
// MOBFJSContext.h
// MOBFoundation
//
// Created by 冯 鸿杰 on 15/2/27.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MOBFJSTypeDefine.h"
/**
* JavaScript上下文环境
*/
@interface MOBFJSContext : NSObject
/**
* 获取默认的上下文环境
*
* @return JS上下文环境
*/
+ (instancetype)defaultContext;
/**
* 注册方法
*
* @param name 方法名称
* @param block 方法执行
*/
- (void)registerJSMethod:(NSString *)name block:(MOBFJSMethodIMP)block;
/**
* 调用方法
*
* @param name 方法名称
* @param arguments 参数
*
* @return 返回值
*/
- (NSString *)callJSMethod:(NSString *)name arguments:(NSArray *)arguments;
/**
* 加载插件
*
* @param path 插件脚本文件路径
* @param name 插件名称
*/
- (void)loadPluginWithPath:(NSString *)path forName:(NSString *)name;
/**
* 加载插件
*
* @param content 插件脚本内容
* @param name 插件名称
*/
- (void)loadPlugin:(NSString *)content forName:(NSString *)name;
/**
* 执行脚本
*
* @param script 脚本
*/
- (void)runScript:(NSString *)script;
@end
@@ -0,0 +1,19 @@
//
// MOBFJSTypeDefine.h
// MOBFoundation
//
// Created by 冯 鸿杰 on 15/2/27.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#ifndef MOBFoundation_MOBFJSTypeDefine_h
#define MOBFoundation_MOBFJSTypeDefine_h
/**
* JS方法实现
*
* @param params 传入参数
*/
typedef void(^MOBFJSMethodIMP) (NSArray *arguments);
#endif
+72
View File
@@ -0,0 +1,72 @@
//
// MOBFJson.h
// MOBFoundation
//
// Created by vimfung on 15-1-20.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* JSON工具类
*/
@interface MOBFJson : NSObject
/**
* 通过JSON字符串反序列化为对象
*
* @param jsonString JSON字符串
*
* @return 对象
*/
+ (id)objectFromJSONString:(NSString *)jsonString;
/**
* 通过JSON数据反序列化为对象
*
* @param jsonData JSON数据
*
* @return 对象
*/
+ (id)objectFromJSONData:(NSData *)jsonData;
/**
* 通过对象序列化为JSON字符串
*
* @param object 对象
*
* @return JSON字符串
*/
+ (NSString *)jsonStringFromObject:(id)object;
/**
* 通过对象序列化为JSON字符串
*
* @param object 对象
* @param block 未解析类型回调
*
* @return JSON字符串
*/
+ (NSString *)jsonStringFromObject:(id)object serializeUnsupportedClassesUsingBlock:(id(^)(id object))block;
/**
* 通过对象序列化为JSON数据
*
* @param object 对象
*
* @return JSON数据
*/
+ (NSData *)jsonDataFromObject:(id)object;
/**
* 通过对象序列化为JSON数据
*
* @param object 对象
* @param block 未解析类型回调
*
* @return JSON数据
*/
+ (NSData *)jsonDataFromObject:(id)object serializeUnsupportedClassesUsingBlock:(id(^)(id object))block;
@end
@@ -0,0 +1,63 @@
//
// MOBFNetworkFlowInfo.h
// MOBFoundation
//
// Created by fenghj on 15/12/17.
// Copyright © 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 网络流量信息
*/
@interface MOBFNetworkFlowInfo : NSObject
/**
* 接收到的字节数
*/
@property (nonatomic, readonly) NSUInteger receivedBytes;
/**
* 发送字节数
*/
@property (nonatomic, readonly) NSUInteger sentBytes;
/**
* 最后的更新时间
*/
@property (nonatomic, strong, readonly) NSDate *lastChangeTime;
/**
* WIFI下的接收字节数
*/
@property (nonatomic, readonly) NSUInteger WIFIReceivedBytes;
/**
* WIFI下的发送字节数
*/
@property (nonatomic, readonly) NSUInteger WIFISentBytes;
/**
* 蜂窝网络下的接收字节数
*/
@property (nonatomic, readonly) NSUInteger WWANReceivedBytes;
/**
* 蜂窝网络下的发送字节数
*/
@property (nonatomic, readonly) NSUInteger WWANSentBytes;
/**
* 获取网络流量信息共享实例
*
* @return 网络流量信息对象
*/
+ (MOBFNetworkFlowInfo *)sharedInstance;
/**
* 更新信息
*/
- (void)update;
@end
@@ -0,0 +1,52 @@
//
// MOBFCore.h
// MOBFoundation
//
// Created by fenghj on 15/8/31.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 应用程序崩溃通知
*/
extern NSString *const MOBFApplicationCrashNotif;
/**
* 核心对象
*/
@interface MOBFNotificationCenter : NSObject
/**
* 添加观察者
*
* @param observer 观察者对象
* @param selector 处理器方法
* @param name 通知名称
* @param object 对象信息
*/
+ (void)addObserver:(NSObject *)observer
selector:(SEL)selector
name:(NSString *)name
object:(id)object;
/**
* 移除观察者
*
* @param observer 观察者对象
*/
+ (void)removeObserver:(NSObject *)observer;
/**
* 移除观察者
*
* @param observer 观察者对象
* @param name 通知名称
* @param object 对象信息
*/
+ (void)removeObserver:(NSObject *)observer
name:(NSString *)name
object:(id)object;
@end
+25
View File
@@ -0,0 +1,25 @@
//
// MOBFNumberUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-20.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 数值工具类
*/
@interface MOBFNumber : NSObject
/**
* 获取随机整型值
*
* @param max 最大随机数
*
* @return 随机整数
*/
+ (NSInteger)randomInteger:(NSInteger)max;
@end
@@ -0,0 +1,67 @@
//
// MOBFOAuthService.h
// MOBFoundation
//
// Created by fenghj on 15/6/9.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <MOBFoundation/MOBFoundation.h>
/**
* OAuth服务
*/
@interface MOBFOAuthService : MOBFHttpService
/**
* 设置密钥
*
* @param consumerSecret 消费者密钥,不允许为nil
* @param oauthTokenSecret 令牌密钥,如果尚未取得令牌密钥,可以传入nil
*/
- (void)setSecretByConsumerSecret:(NSString *)consumerSecret
oauthTokenSecret:(NSString *)oauthTokenSecret;
/**
* 添加OAuth参数
*
* @param value 参数值
* @param key 参数名字
*/
- (void)addOAuthParameter:(id)value forKey:(NSString *)key;
/**
* 添加OAuth参数
*
* @param oauthParameters OAuth参数集合
*/
- (void)addOAuthParameters:(NSDictionary *)oauthParameters;
/**
* 发送HTTP请求
*
* @param urlString 请求地址
* @param method 请求方式
* @param parameters 请求参数
* @param headers 请求头集合
* @param oauthParameters OAuth请求参数
* @param consumerSecret 消费者密钥
* @param oauthSecret OAuth令牌密钥
* @param resultHandler 返回回调
* @param faultHandler 错误回调
* @param uploadProgressHandler 上传数据进度回调
*
* @return HTTP服务对象
*/
+ (MOBFOAuthService *)sendRequestByURLString:(NSString *)urlString
method:(NSString *)method
parameters:(NSDictionary *)parameters
headers:(NSDictionary *)headers
oauthParameters:(NSDictionary *)oauthParameters
consumerSecret:(NSString *)consumerSecret
oauthTokenSecret:(NSString *)oauthTokenSecret
onResult:(MOBFHttpResultEvent)resultHandler
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
@end
@@ -0,0 +1,66 @@
//
// MOBFPluginManager.h
// MOBFoundation
//
// Created by fenghj on 15/6/2.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "IMOBFPlugin.h"
/**
* 插件创建事件处理
*
* @return 插件对象
*/
typedef id<IMOBFPlugin>(^MOBFPluginConstructHandler) ();
/**
* 插件管理器
*/
@interface MOBFPluginManager : NSObject
/**
* 获取默认的插件管理器
*
* @return 插件管理器
*/
+ (instancetype) defaultManager;
/**
* 注册插件
*
* @param pluginConstructHandler 插件构造事件处理器
* @param key 插件标识
*
* @return YES 表示注册成功,NO 表示注册失败,有可能已存在此插件
*/
- (BOOL)registerPlugin:(MOBFPluginConstructHandler)pluginConstructHandler forKey:(NSString *)key;
/**
* 判断是否已经注册插件
*
* @param key 插件标识
*
* @return YES 表示已经注册, NO 表示尚未注册
*/
- (BOOL)isRegisterPluginForKey:(NSString *)key;
/**
* 获取插件对象
*
* @param key 插件标识
*
* @return 插件对象,nil 表示该标志的插件不存在
*/
- (id<IMOBFPlugin>)pluginForKey:(NSString *)key;
/**
* 卸载插件
*
* @param key 插件标识
*/
- (void)unloadPluginForKey:(NSString *)key;
@end
@@ -0,0 +1,65 @@
//
// MOBFRSAHelper.h
// MOBFoundation
//
// Created by fenghj on 15/7/29.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MOBFRSAKey.h"
/**
* RSA加解密助手
*/
@interface MOBFRSAHelper : NSObject
/**
* 密钥信息
*/
@property (nonatomic, readonly) MOBFRSAKey *key;
/**
* 初始化RSA加密器
*
* @param keySize 密钥长度
*
* @return 加密器对象
*/
- (instancetype)initWithKeySize:(int)keySize;
/**
* 初始化RSA加密器
*
* @param keySize 密钥长度
* @param publicKey 公钥
* @param privateKey 私钥
* @param modulus 模数
*
* @return 加密器对象
*/
- (instancetype)initWithKeySize:(int)keySize
publicKey:(NSString *)publicKey
privateKey:(NSString *)privateKey
modulus:(NSString *)modulus;
/**
* 加密数据
*
* @param data 数据
*
* @return 加密后数据
*/
- (NSData *)encryptWithData:(NSData *)data;
/**
* 解密数据
*
* @param data 加密后数据
*
* @return 解密后数据
*/
- (NSData *)decryptWithData:(NSData *)data;
@end
+35
View File
@@ -0,0 +1,35 @@
//
// MOBFRSAKey.h
// MOBFoundation
//
// Created by fenghj on 15/7/29.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
@class MOBFBigInteger;
@interface MOBFRSAKey : NSObject
/**
* bits in key
*/
@property (nonatomic) int bits;
/**
* modulus
*/
@property (nonatomic, strong) MOBFBigInteger *n;
/**
* public exponent
*/
@property (nonatomic, strong) MOBFBigInteger *e;
/**
* private exponent
*/
@property (nonatomic, strong) MOBFBigInteger *d;
@end
+97
View File
@@ -0,0 +1,97 @@
//
// MOBFRegex.h
// MOBFoundation
//
// Created by vimfung on 15-1-20.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 替换处理
*
* @param captureCount 捕获数量
* @param capturedStrings 捕获字符串集合
* @param capturedRanges 捕获字符串范围集合
* @param stop 是否停止捕获标识
*
* @return 替换后的字符串
*/
typedef NSString *(^MOBFReplacingOccurrencesHandler) (NSInteger captureCount, NSString *const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop);
/**
* 正则表达式选项
*/
typedef NS_ENUM(NSUInteger, MOBFRegexOptions){
/**
* 无设置
*/
MOBFRegexOptionsNoOptions = 0,
/**
* 不区分大小写
*/
MOBFRegexOptionsCaseless = 2,
/**
* 注释
*/
MOBFRegexOptionsComments = 4,
/**
* 匹配点
*/
MOBFRegexOptionsDotAll = 32,
/**
* 多行模式
*/
MOBFRegexOptionsMultiline = 8,
/**
* Unicode字符
*/
MOBFRegexOptionsUnicodeWordBoundaries = 256
};
/**
* 正则表达式工具类
*/
@interface MOBFRegex : NSObject
/**
* 替换字符串
*
* @param regex 正则表达式
* @param string 原始字符串
* @param block 块回调处理替换规则
*
* @return 字符串
*/
+ (NSString *)stringByReplacingOccurrencesOfRegex:(NSString *)regex
withString:(NSString *)string
usingBlock:(MOBFReplacingOccurrencesHandler)block;
/**
* 匹配字符串
*
* @param regex 正则表达式
* @param options 表达式选项
* @param range 匹配范围
* @param string 原始字符串
*
* @return YES 匹配,NO 不匹配
*/
+ (BOOL)isMatchedByRegex:(NSString *)regex
options:(MOBFRegexOptions)options
inRange:(NSRange)range
withString:(NSString *)string;
/**
* 匹配字符串
*
* @param regex 正则表达式
* @param string 原始字符串
*
* @return 匹配的字符串集合
*/
+ (NSArray *)captureComponentsMatchedByRegex:(NSString *)regex
withString:(NSString *)string;
@end
+107
View File
@@ -0,0 +1,107 @@
//
// MOBFStringUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-16.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 字符串工具
*/
@interface MOBFString : NSObject
/**
* URL编码
*
* @param string 原始字符串
* @param encoding 字符串编码
*
* @return 编码后字符串
*/
+ (NSString *)urlEncodeString:(NSString *)string forEncoding:(NSStringEncoding)encoding;
/**
* URL解码
*
* @param string 原始字符串
* @param encoding 字符串编码
*
* @return 解码后字符串
*/
+ (NSString *)urlDecodeString:(NSString *)string forEncoding:(NSStringEncoding)encoding;
/**
* 使用SHA1算法进行字符串签名
*
* @param string 原始字符串
*
* @return 签名后字符串
*/
+ (NSString *)sha1String:(NSString *)string;
/**
* 使用MD5算法进行字符串签名
*
* @param string 原始字符串
*
* @return 签名后字符串
*/
+ (NSString *)md5String:(NSString *)string;
/**
* 获取GUID字符串
*
* @return GUID字符串
*/
+ (NSString *)guidString;
/**
* 使用HMAC-SHA1进行签名
*
* @param string 原始字符串
* @param key 密钥
*
* @return 签名后的数据
*/
+ (NSData *)dataByHMACSha1String:(NSString *)string forKey:(NSString *)key;
/**
* 使用BASE64进行解码
*
* @param string 原始字符串
*
* @return 解码后数据
*/
+ (NSData *)dataByBase64DecodeString:(NSString *)string;
/**
* 判断字符串中是否包含链接
*
* @param string 原始字符串
*
* @return YES 表示包含URLNO 表示不包含
*/
+ (BOOL)containsURLByString:(NSString *)string;
/**
* @brief 解析HTTP参数字符串,字符串格式为:参数名=参数值&参数名=参数值
*
* @param string 参数字符串
*
* @return 解析后字典对象
*/
+ (NSDictionary *)parseURLParametersString:(NSString *)string;
/**
* @brief 转换16进制字符串为NSData
*
* @param string 二进制流的16进制字符串
*
* @return 二进制数据对象
*/
+ (NSData *)dataByHexString:(NSString *)string;
@end
@@ -0,0 +1,33 @@
//
// MOBFViewControllerUtils.h
// MOBFoundation
//
// Created by vimfung on 15-1-19.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 视图控制器工具类
*/
@interface MOBFViewController : NSObject
/**
* 获取当前视图控制器
*
* @return 视图控制器
*/
+ (UIViewController *)currentViewController;
/**
* 获取当前视图控制器
*
* @param window 窗口
*
* @return 视图控制器
*/
+ (UIViewController *)currentViewControllerFromWindow:(UIWindow *)window;
@end
+48
View File
@@ -0,0 +1,48 @@
//
// MOBFXml.h
// MOBFoundation
//
// Created by fenghj on 15/9/16.
// Copyright © 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
@class MOBFXmlNode;
/**
* XML工具类
*/
@interface MOBFXml : NSObject
/**
* 根节点
*/
@property (nonatomic, strong, readonly) MOBFXmlNode *rootNode;
/**
* 初始化XML实例对象
*
* @param path XML文件路径
*
* @return XML实例对象
*/
- (instancetype)initWithPath:(NSString *)path;
/**
* 初始化XML实例对象
*
* @param string XML字符串描述
*
* @return XML实例对象
*/
- (instancetype)initWithString:(NSString *)string;
/**
* 获取XML字典描述对象
*
* @return 字典对象
*/
- (NSDictionary *)dictionaryValue;
@end
@@ -0,0 +1,48 @@
//
// MOBFXmlNode.h
// MOBFoundation
//
// Created by fenghj on 15/9/17.
// Copyright © 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* XML节点
*/
@interface MOBFXmlNode : NSObject
/**
* 父级节点
*/
@property (nonatomic, weak) MOBFXmlNode *parentNode;
/**
* 节点名称
*/
@property (nonatomic, copy) NSString *name;
/**
* 属性集合
*/
@property (nonatomic, strong, readonly) NSMutableDictionary *attributes;
/**
* 子节点
*/
@property (nonatomic, strong, readonly) NSMutableArray *children;
/**
* 文本信息
*/
@property (nonatomic, copy) NSString *text;
/**
* 获取节点的字典结构描述
*
* @return 字典结构
*/
- (NSDictionary *)dictionaryValue;
@end
@@ -0,0 +1,36 @@
//
// MOBFoundation.h
// MOBFoundation
//
// Created by vimfung on 15-1-16.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#ifndef MOBFoundation_MOBFoundation_h
#define MOBFoundation_MOBFoundation_h
#import <MOBFoundation/MOBFApplication.h>
#import <MOBFoundation/MOBFColor.h>
#import <MOBFoundation/MOBFData.h>
#import <MOBFoundation/MOBFDate.h>
#import <MOBFoundation/MOBFDebug.h>
#import <MOBFoundation/MOBFDevice.h>
#import <MOBFoundation/MOBFImage.h>
#import <MOBFoundation/MOBFImage.h>
#import <MOBFoundation/MOBFJson.h>
#import <MOBFoundation/MOBFNumber.h>
#import <MOBFoundation/MOBFRegex.h>
#import <MOBFoundation/MOBFString.h>
#import <MOBFoundation/MOBFViewController.h>
#import <MOBFoundation/MOBFDataService.h>
#import <MOBFoundation/MOBFHttpService.h>
#import <MOBFoundation/MOBFImageGetter.h>
#import <MOBFoundation/MOBFJSContext.h>
#import <MOBFoundation/IMOBFPlugin.h>
#import <MOBFoundation/MOBFPluginManager.h>
#import <MOBFoundation/MOBFNotificationCenter.h>
#endif
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
=========================================
MOBFoundation.framework
=========================================
1、引用此库需要添加下面依赖库:
libz.dylib
libicucore.dylib