ios - 工具类
这几天看项目,把俺旁边小哥哥的一个工具类相中了,希望对大家有所帮助哦~~~~~~~~~
//
// PLZ_Tool.h
// //
// Created by penglaizhi on 2017/7/3.
// Copyright © 2017年 yst-fll. All rights reserved.
// #import <Foundation/Foundation.h>
#import <ifaddrs.h>
#import <arpa/inet.h>
#import <net/if.h> #define IOS_CELLULAR @"pdp_ip0"
#define IOS_WIFI @"en0"
#define IOS_VPN @"utun0"
#define IP_ADDR_IPv4 @"ipv4"
#define IP_ADDR_IPv6 @"ipv6" typedef void(^SuccessBlock)(id _Nullable data);
typedef void(^FailBlock)(NSError * _Nullable error); @interface PLZ_Tool : NSObject
/**
* 使用该函数计算时间戳
* parameters : 不传参
*/ //+ (NSString*)getTimeDate:(NSString*)time_ format:(NSString*)format_; /**
* 使用该函数添加提示框下
* parameters : 不传参
*/
//+(void)showMessage:(NSString *)message;
//
///**
// * 使用该函数添加提示框上
// * parameters : 不传参
// */
//+(void)showMessageUp:(NSString *)message; /**
* 使用该函数添加提示框上
* parameters : 不传参
*/
+ (void)sendGETWithUrl:(NSString *_Nullable)url parameters:(NSDictionary *_Nullable)dict success:(SuccessBlock _Nullable )successBlock fail:(FailBlock _Nullable )failBlock; + (void)sendPOSTWithUrl:(NSString *_Nullable)url parameters:(NSDictionary *_Nullable)dict success:(SuccessBlock _Nullable )successBlock fail:(FailBlock _Nullable )failBlock :(BOOL)isNeed; /**
* 判断是否有网
* parameters : 不传参
*/ //+ (BOOL)isCheckNetwork; /* *
*color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式 */
+ (UIColor *_Nullable)colorWithHexString:(NSString *_Nullable)color; /* *
*color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式 */
+ (UIColor *_Nullable)colorWithHexString:(NSString *_Nullable)color alpha:(CGFloat)alpha; + (NSString *_Nullable)filterEmoji:(NSString *_Nullable)string; + (NSMutableAttributedString *_Nullable)String:(NSString *_Nullable)String RangeString:(NSString *_Nullable)RangeString;//富文本 +(void)p_makeupDataForDidLoad:(NSMutableArray *_Nullable)arr; + (NSMutableAttributedString *_Nullable)String2:(NSString *_Nullable)String RangeString:(NSString *_Nullable)RangeString colorString:(NSString *_Nullable)colorString Size:(CGFloat)size;
//邮箱正则
+ (BOOL) validateEmail:(NSString *_Nullable)email;
+ (BOOL) validateMobile:(NSString *_Nullable)mobileNum;
+ (NSInteger)getNowTimestamp;
+ (NSMutableAttributedString *_Nullable)String:(NSString *_Nullable)String SetRangeString:(NSString *_Nullable)RangeString setColor:(UIColor *_Nullable)Color SetFont:(UIFont *_Nullable)Font;
//毫秒转成date
+ (NSString *_Nullable)ConvertStrToTime:(NSString *_Nullable)timeStr; //字符串判空
+(NSInteger)GetContentBackStyleToString:(NSString *_Nullable)string; //过滤表情
+ (BOOL)stringContainsEmoji:(NSString *_Nullable)string;
-(void)textFiledEditChangedN:(UITextField *_Nullable)field lenth:(CGFloat)lenth; -(void)textViewEditChangedN:(UITextView *_Nullable)textView lenth:(CGFloat)lenth; //获取ip地址
+ (NSString *_Nullable)getIPAddress:(BOOL)preferIPv4;
+ (NSString *_Nullable)deviceIPAdress;
+ (BOOL)isMobileNumber:(NSString *_Nullable)mobileNum; +(NSString *)stringAddStarsWithString:(NSString *_Nullable)string; //生成二维码
//+ (UIImage *)creatNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat)size;
+(NSString *)countdownStartTime:(NSString *)startTime;
@end
//
// PLZ_Tool.m
// //
// Created by penglaizhi on 2017/7/3.
// Copyright © 2017年 yst-fll. All rights reserved.
// #import "PLZ_Tool.h"
#import "AppDelegate.h" @implementation PLZ_Tool
/**
* 使用该函数计算时间戳
* parameters : 不传参
*/ //+(void)showMessage:(NSString *)message
//{
// UIWindow * window = [UIApplication sharedApplication].keyWindow;
// __block UIView *showview = [[UIView alloc]init];
// showview.backgroundColor = [UIColor blackColor];
// showview.frame = CGRectMake(1, 1, 1, 1);
// showview.alpha = 1.0f;
// showview.layer.cornerRadius = 5.0f;
// showview.layer.masksToBounds = YES;
// [window addSubview:showview];
//
// UILabel *label = [[UILabel alloc]init];
//
// NSDictionary *attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:17]};
//
// CGSize LabelSize = [message boundingRectWithSize:CGSizeMake(290, 9000)
// options: NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
// attributes:attribute context:nil].size;
//
// label.frame = CGRectMake(10, 5, LabelSize.width, LabelSize.height);
// label.text = message;
// label.textColor = [UIColor whiteColor];
// label.textAlignment = 1;
// label.backgroundColor = [UIColor clearColor];
// label.font = [UIFont boldSystemFontOfSize:15];
// [showview addSubview:label];
// showview.frame = CGRectMake((kScreenWidth - LabelSize.width - 20)/2, kScreenHeight - 100, LabelSize.width+20, LabelSize.height+10);
// [UIView animateWithDuration:2.5 animations:^{
// showview.alpha = 0;
// } completion:^(BOOL finished) {
// [showview removeFromSuperview];
// showview = nil;
// }];
//}
//
//+(void)showMessageUp:(NSString *)message
//{
// UIWindow * window = [UIApplication sharedApplication].keyWindow;
// UIView *showview = [[UIView alloc]init];
// showview.backgroundColor = [UIColor blackColor];
// showview.frame = CGRectMake(1, 1, 1, 1);
// showview.alpha = 1.0f;
// showview.layer.cornerRadius = 5.0f;
// showview.layer.masksToBounds = YES;
// [window addSubview:showview];
//
// UILabel *label = [[UILabel alloc]init];
// NSDictionary *attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:17]};
//
// CGSize LabelSize = [message boundingRectWithSize:CGSizeMake(290, 9000)
// options: NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
// attributes:attribute context:nil].size;
// label.frame = CGRectMake(10, 5, LabelSize.width, LabelSize.height);
// label.text = message;
// label.textColor = [UIColor whiteColor];
// label.textAlignment = 1;
// label.backgroundColor = [UIColor clearColor];
// label.font = [UIFont boldSystemFontOfSize:15];
// [showview addSubview:label];
// showview.frame = CGRectMake((kScreenWidth - LabelSize.width - 20)/2, 100, LabelSize.width+20, LabelSize.height+10);
// [UIView animateWithDuration:2.5 animations:^{
// showview.alpha = 0;
// } completion:^(BOOL finished) {
// [showview removeFromSuperview];
// }];
//} //网络请求数据
+(void)sendPOSTWithUrl:(NSString *)url parameters:(NSDictionary *)dict success:(SuccessBlock)successBlock fail:(FailBlock)failBlock :(BOOL)isNeed
{
if (isNeed) {
[JHHJView showLoadingOnTheKeyWindowWithType:JQXLoading]; }
// if ([NetworkTool getNetworkStatus] == NotReachable) {
//// UIViewController *VC = [LFYCommonTool getCurrentVC];
//// [ALToastView toastInView:VC.view withText:@"网络无法连接,请稍后再试"];
// }else{
//加签方法
// NSString *url1 = [url substringFromIndex:26];//本地
// NSString *url1 = [url substringFromIndex:27];//测试
NSMutableDictionary * dic = [EncryptTool encryptParamter:dict withUrl:url]; NSString *url1 = [url substringFromIndex:];//正式
// dict = [YSTFileManageTool encryptChangeDic2:dict AndUrl:url1];
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
AFHTTPSessionManager *manager = [app sharedHTTPSession]; // AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer.timeoutInterval = ; // if (kTOKEN) {
// [manager.requestSerializer setValue:[NSString stringWithFormat:@"Bearer %@",kTOKEN] forHTTPHeaderField:@"Authorization"];
// }
// NSLog(@"%@------==-----%@0-0%@--9%@",kTOKEN,url1,url,dict); manager.requestSerializer.timeoutInterval = ;
// manager.responseSerializer=[AFJSONResponseSerializer serializer];
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/xml",@"text/html",@"text/xml",@"text/plain",@"application/json",nil];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSLog(@"%@",url);
// NSDictionary *Dic = [EncryptTool encryptParamter:dict withUrl:url];
[manager POST:url parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) { [JHHJView hideLoading];
NSDictionary *dic_ = [NSJSONSerialization JSONObjectWithData:responseObject options: error:nil];
successBlock(dic_);
NSLog(@"QJGlobalAFN>>dic = %@",dic_);
// [NSObject creatPropertyCodeWithDictionary:dic_]; } failure:^(NSURLSessionDataTask *task, NSError *error) {
[JHHJView hideLoading];
failBlock(error);
NSLog(@"QJGlobalAFN>>error = %@",error);
// [JHHJView hideLoading]; }]; // } // AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// //申明返回的是JSON数据
// manager.responseSerializer = [AFJSONResponseSerializer serializer];
// //申明请求的数据是json类型
// // manager.requestSerializer=[AFJSONRequestSerializer serializer];
// //如果报接受类型不一致请替换一致text/html/plain或别的
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
// manager.requestSerializer.timeoutInterval = 10.0;//超时
//
//
// [manager POST:url parameters:dict
//
// success:^(AFHTTPRequestOperation *operation,NSDictionary * responseObject) {
//
// successBlock(responseObject);
// }failure:^(AFHTTPRequestOperation *operation,NSError *error) {
//
// failBlock(error);
// }]; } //网络请求数据
+ (void)sendGETWithUrl:(NSString *)url parameters:(NSDictionary *)dict success:(SuccessBlock)successBlock fail:(FailBlock)failBlock
{
[JHHJView showLoadingOnTheKeyWindowWithType:JQXLoading];
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
AFHTTPSessionManager *manager = [app sharedHTTPSession];
// NSString *url1 = [url substringFromIndex:27];//测试
NSString *url1 = [url substringFromIndex:];//正式
// NSString *url1 = [url substringFromIndex:26];//本地 // dict = [YSTFileManageTool encryptChangeDic2:dict AndUrl:url1]; // NSLog(@"%@^^^^^^^^^^",dict); // manager.responseSerializer = [AFHTTPResponseSerializer serializer];
// [manager.requestSerializer setValue:[NSString stringWithFormat:@"YTX-C;ios %@;%@;v%@",[UIDevice systemVersion],CUREENRBUILD,CUREENRVERSION] forHTTPHeaderField:@"User-Agent"]; // if (kTOKEN) {
// [manager.requestSerializer setValue:[NSString stringWithFormat:@"Bearer %@",kTOKEN] forHTTPHeaderField:@"Authorization"];
// }
manager.requestSerializer.timeoutInterval = ; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/xml",@"text/html",@"text/xml",@"text/plain",@"application/json",nil]; manager.responseSerializer=[AFHTTPResponseSerializer serializer]; [manager GET:url parameters:dict success:^(NSURLSessionDataTask *task, id responseObject) {
[JHHJView hideLoading];
NSDictionary *dic_ = [NSJSONSerialization JSONObjectWithData:responseObject options: error:nil];
successBlock(dic_);
NSLog(@"ios - 工具类的更多相关文章
- 【IOS工具类】IOS9的CoreSpotlight(OC语言)
什么是CoreSpotlight?就是在IOS9下.让用户在下拉的搜索页面里能够搜索到你的应用. #import <Foundation/Foundation.h> @interface ...
- 【IOS工具类】获得设备唯一标识(兼容IOS5,6,7)
UIDevice+IdentifierAddition.h: #import <Foundation/Foundation.h> @interface UIDevice (Identifi ...
- iOS开发拓展篇—封装音频文件播放工具类
iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...
- IOS开发--常用工具类收集整理(Objective-C)(持续更新)
前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...
- ios Base64编解码工具类及使用
为了避免明码传递http内容,可以用base64编码后传输,收到方再解码,也方便了2进制数据的字符串式传输. 对于ios来说,google给提供了一个很好的工具类,方便进行base64编解码,当然也可 ...
- iOS开发——生成二维码——工具类
啥也不说,直接上源码,拷过去就能用.生成二维码的工具类使用方法在ProduceQRCode.h里有示例说明 分别将下面的ProduceQRCode.h和ProduceQRCode.m对应的代码考到自己 ...
- 【YFMemoryLeakDetector】人人都能理解的 iOS 内存泄露检测工具类
背景 即使到今天,iOS 应用的内存泄露检测,仍然是一个很重要的主题.我在一年前,项目中随手写过一个简单的工具类,当时的确解决了大问题.视图和控制器相关的内存泄露,几乎都不存在了.后来想着一直就那个工 ...
- ios第三方库和工具类
下面的是使用苹果电脑后,自己的一下积累吧.有好用的第三方库和工具,肯定会第一时间和大家分享的. 自己平时写的一些分类和工具库 SSTools已经在github上面开始更新了,欢迎大家来指正和补充 一. ...
- iOS开发--换肤简单实现以及工具类的抽取
一.根据美工提供的图片,可以有两种换肤的方案. <1>美工提供图片的类型一: <2>美工提供图片的类型二:这种分了文件夹文件名都一样的情况,拖入项目后最后用真实文件夹(蓝色文件 ...
随机推荐
- 操作系统(3)_CPU调度_李善平ppt
不只上面的四种,比如时间片到了也会引起调度. 具体的调度算法: fcfs简单,但是波动很大. 最高相应比算法,执行时间最长就应该等待的长点,比sjf多了一个等待时间的考虑. 硬件定时器和软件计数器共同 ...
- VueX源码分析(3)
VueX源码分析(3) 还剩余 /module /plugins store.js /plugins/devtool.js const devtoolHook = typeof window !== ...
- css中让元素隐藏的多种方法
{ display: none; /* 不占据空间,无法点击 / } { visibility: hidden; / 占据空间,无法点击 / } { position: absolute; top: ...
- es6中的类及es5类的实现
目录 类的特点 类的特点 1.类只能通过new得到 在es6中类的使用只能是通过new,如果你将它作为一个函数执行,将会报错. //es6的写法 class Child { constructor() ...
- jrtplib库使用简解
RTP有效载荷类型即时间截解释 =============================== https://www.cnblogs.com/wyqfighting/archive/2013/03/ ...
- ThinkPHP函数I代码优化
ThinkPHP/Common/common.php 文件 I函数,主要用来获取一些gpc请求的变量的,函数有一部分代码是过滤变量的,每次都运行一次,其实是没有必要的. 如果你每次都像这样的方式调用的 ...
- A1058 A+B in Hogwarts (20)(20 分)
A1058 A+B in Hogwarts (20)(20 分) If you are a fan of Harry Potter, you would know the world of magic ...
- 动态规划:HDU1224-Free DIY Tour
Free DIY Tour Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Hive UDTF开发指南
在这篇文章中,我们将深入了解用户定义表函数(UDTF),该函数的实现是通过继承org.apache.Hadoop.hive.ql.udf.generic.GenericUDTF这个抽象通用类,UDTF ...
- Python + Selenium 自动化环境搭建过程
1. 所需组建 1.1 Selenium for python 1.2 Python 1.3 Notepad++ 作为刚初学者,这里不建议使用Python IDE工具,选择一个功能强大的记事本 ...