Initial commit
This commit is contained in:
BIN
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
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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 表示包含URL,NO 表示不包含
|
||||
*/
|
||||
+ (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
@@ -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
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Executable
+8
@@ -0,0 +1,8 @@
|
||||
=========================================
|
||||
MOBFoundation.framework
|
||||
=========================================
|
||||
|
||||
1、引用此库需要添加下面依赖库:
|
||||
libz.dylib
|
||||
libicucore.dylib
|
||||
|
||||
Reference in New Issue
Block a user