// // iTools.h // VclustersGemini // // Created by 余衡武 on 2020/4/1. // Copyright © 2020 APPLE. All rights reserved. // #import NS_ASSUME_NONNULL_BEGIN @interface iTools : NSObject #pragma mark 字典、数组转JSONString /** 字典转JSONString */ + (NSString *)getJSONStringFromDictionary:(NSDictionary *)dict; /** 数组转JSONString */ + (NSString *)getJSONStringFromArray:(NSArray *)array; #pragma mark 时间戳 /** 获取当前时间戳-以秒为单位-return NSInteger */ + (NSInteger)getNowTimeStamp; /** 获取当前时间戳-以秒为单位-return yyyy/MM/dd HH:mm */ + (NSString *)getNowTimeString; /** 获取当前时间戳-以秒为单位-return yyyyy年MM月dd日 HH:mm:ss */ + (NSString *)getNowTimeString1; /** 获取当前时间戳-以秒为单位-return yyyyy-MM-dd HH:mm:ss */ + (NSString *)getNowTimeString2; + (NSString *)getNowTimeString3; /** 获取当前时间戳-以毫秒为单位-return NSInteger */ + (NSInteger)getNowTimeStampSS; /** 获取当前时间戳-以毫秒为单位--return YYYYMMddhhmmssSSS */ + (NSString *)getNowTimeStampString; /** 获取当前时间戳-以天为单位--return yyyy-MM-dd */ + (NSString *)getNowDateString; /** 获取现在到某个时间点的时间戳*/ + (NSInteger)getNowTimeStampToInterval:(NSTimeInterval)second; /** 把字符串转时间戳Date YYYYMMddhhmmssSSS*/ + (NSDate *)getTimeStringToDate:(NSString *)timeStr; /**时间戳转字符串-yyyy/MM/dd HH:mm*/ + (NSString *)getTimeStringFromTimeInterval:(NSInteger)timeInterval; /** 秒转播放时间HH:mm:ss */ + (NSString *)getPlayTimeStringFromTimeInterval:(NSTimeInterval)timeInterval; /** 把字符串转时间戳Date YYYYMMddhhmmssSSS 2024-05-24 20:44:57 返回 x天 多少时 多少分*/ + (NSString *)getTimeStringToExpirationDate:(NSString *)timeStr; #pragma mark 通讯录备份 //ypp add 通讯录文件名格式YmdHis+随机数字(1000~9999) 2020 07 07 15 08 25 1000 + (NSString *)getContactsNameStr; #pragma mark 绘制图片 /** 根据颜色绘制图片 */ + (UIImage*)createImageWithColor:(UIColor*)color; /** 根据颜色和view 绘制指定大小的图片 */ + (UIImage *)imageFromColor:(UIColor *)color view:(UIView *)view; /** 根据颜色和rect 绘制指定大小的图片 */ + (UIImage *)getImageFromColor:(UIColor *)color rect:(CGRect)rect; /** 根据颜色和size 绘制指定大小的图片 */ + (UIImage *)createImageWithColor:(UIColor *)color withSize:(CGSize)size; /**根据uiview得到图像UIImage*/ + (UIImage *)getImageFromView:(UIView *)fromView useScreenScale:(BOOL)use useNewMethod:(BOOL)useNewMethod; /**彩色图变黑白图*/ + (UIImage*)getGrayImageFromImage:(UIImage*)sourceImage; #pragma mark 绘制圆角 /**圆角切割*/ + (CAShapeLayer *)getCornerRoundWithSelfView:(UIView *)originalView byRoundingCorners:(UIRectCorner)corners cornerRect:(CGRect)rect; + (CAShapeLayer *)getCornerRoundWithSelfView:(UIView *)originalView byRoundingCorners:(UIRectCorner)corners cornerRect:(CGRect)rect radius:(CGFloat)radius; #pragma mark 小数取整 (不四舍五入) /** 小数取整 不四舍五入 */ + (NSString *)notRounding:(float)price afterPoint:(int)position; /** 小数取整 不四舍五入 */ + (CGFloat)notRoundingFloat:(float)price afterPoint:(int)position; /** 小数点格式化*/ + (NSString *)formatFloat:(float)f; #pragma mark 字符串处理 /** 去除字符串中所有的空格和换行符(包括中间和首尾) */ + (NSString *)removeSpaceAndNewline:(NSString *)str; /** 获取拼音首字母(传入汉字字符串, 返回大写拼音首字母)*/ + (NSString *)FirstCharactor:(NSString *)pString; #pragma mark 系统语言 /** 获取当前系统的语言 */ + (NSString *)getCurrentLocalizableLanguage; /** 当前语言是否为中文 */ + (BOOL)isChineseLanguage; /** 得到当前语言是否为中文 */ #pragma mark push到指定vc /**push到vc 控制器 * 1、NavigationController之前有push过就back * 2、NavigationController之前没有push过就push */ + (void)pushVCWithBackOrPushFromNvc:(UINavigationController *)nvc toVc:(UIViewController *)vc; #pragma mark 文件大小格式化 /**将文件大小B 自动转成对应的B KB MB GB**/ + (NSString *)getFileSizeStringFormedValue:(NSInteger)value; #pragma mark 获取文件MD5值 /**获取文件MD5值*/ + (NSString*)getFileMD5WithPath:(NSString*)path; #pragma mark 关闭声音 /**关闭其他播放声音*/ + (void)closeVoice; #pragma mark 其他 /**防止N秒内,同部同接口频繁调用的处理*/ + (BOOL)timeOverTosecode:(NSInteger)index bannerOldTime:(NSString *)bannerOldTime; /**根据文件ID 获取文件中心文件URL地址*/ + (NSURL *)getFileUrlFromFileID:(NSString *)ID; /**显示Base64二进制图片*/ + (void)setImageView:(UIImageView *)imageView WithBase64String:(NSString *)avatar; // iOS裁剪掉图片周围透明度为0的部分 + (UIImage *)cutAlphaZero:(UIImage *)image; /**push到vc 控制器 * 1、NavigationController之前有push过就back * 2、NavigationController之前没有push过就push */ + (void)pushVCWithBackOrPushFromNvc:(UINavigationController *)nvc toVc:(UIViewController *)vc; /**获取phoneId在CloudPhoneList中的索引*/ + (NSUInteger)getIndexFromCloudPhoneListWithPhoneID:(NSInteger)phoneId; /*获取网络时间*/ + (NSDate *)getInternetDate; + (NSString *)getInternetDateString; + (UIWindow *)getKeyWindow; // + (NSString *)getTaskUidStr; //更换图标 + (void)lc_setAlternateIconName:(NSString*)iconName; + (UIViewController *)appRootViewController; //压缩图片对对应尺寸 + (UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size; // 时间戳转时间,时间戳为13位是精确到毫秒的,10位精确到秒 + (NSString *)getDateStringWithTimeStr:(NSString* )str; // 文件夹大小(字节) + (unsigned long long)folderSizeAtPath:(NSString *)folderPath; //单个文件的大小(字节) +(unsigned long long)fileSizeAtPath:(NSString *)filePath; + (NSArray *)toArrayWithJsonStr:(NSString *)jsonStr; + (NSString *)toJsonStrWithArray:(NSArray *)arr; //判断图片和视频能不能保存到相册 + (BOOL)canSaveFileToAlbumByPhoto:(BOOL)isPhotoType withName:(NSString*)nameStr; //判断是否为音频文件 + (BOOL)isAudioFilewithName:(NSString*)nameStr; //判断是否为视频文件 + (BOOL)isVideoFilewithName:(NSString*)nameStr; //判断是否为相片文件 + (BOOL)isPhotoFilewithName:(NSString*)nameStr; // base64 url 编码 + (NSString *)base64UrlEncoder:(NSString *)str; // base64 url 解码 + (NSString *)base64UrlDecoder:(NSString *)str; //获取机型 + (NSString *)getCurrentDeviceModel; //检测真机空间是否足够下载 两倍 文件长度 或者大于 1G + (BOOL)checkFreeDiskSpaceInBytesIsOK:(long)fileByte; //传输用的路径换成显示的路径 + (NSString *)changePathToShowPathBy:(NSString*)path; //获取文件大小 + (unsigned long long)getFileSize:(NSString *)filePath; @end NS_ASSUME_NONNULL_END