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>美工提供图片的类型二:这种分了文件夹文件名都一样的情况,拖入项目后最后用真实文件夹(蓝色文件 ...
随机推荐
- 学习笔记 | java反序列化漏洞分析
java反序列化漏洞是与java相关的漏洞中最常见的一种,也是网络安全工作者关注的重点.在cve中搜索关键字serialized共有174条记录,其中83条与java有关:搜索deserialized ...
- Oracle 事务 锁
一. 事务 是一系列的数据库操作,是数据库应用的基本逻辑单位以及并发控制的基本单位.所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 要将有组语句作为事务考 ...
- 1005: [HNOI2008]明明的烦恼
Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 6539 Solved: 2558[Submit][Status][Discuss] Descripti ...
- python 实现简单语音聊天机器人
'''思路:使用百度的文本转音频API,将结果保存成mp3格式,并用mp3play库播放该文件.''' 1 # -*- coding:utf-8 -*- import sys import reque ...
- 如何禁止用户连续点击一个按钮事件详细JS
<input type="button" id="submit" value="提交"> <script> $(do ...
- nodejs实现前后端交互
本人nodejs入门级选手,站在巨人(文殊)的肩膀上学习了一些相关知识,有幸在项目中使用nodejs实现了前后端交互,因此,将整个交互过程记录下来,方便以后学习. 本文从宏观讲述nodejs实现前后端 ...
- Fakeapp 入门教程(3):参数篇
参数可以让软件自由度更高.Fakeapp的参数并不算多,但是也非常使用.本文就讲解下几个重要的参数.参数设置界面可以通过点击SETTINGS打开. 参数修改无需点击保存,一旦修改直接生效. Proce ...
- 笔记-python-tutorial-5.data structure
笔记-python-tutorial-5.data structure 1. data structure 1.1. list operation list.append(x) #尾部 ...
- android json 解析 kotlin
前面 写了一次 kotlin解析json 但是,真的写得太烂,直接删掉了,现在重新整理一下.顺便记录一下今天坑了我很久的小问题. 1.首先从最简单的入手吧 一个json的字符串:=====就叫做jso ...
- vue --子父组件传值
1.父组件可以使用 props 把数据传给子组件. 2.子组件可以使用 $emit 触发父组件的自定义事件. vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( e ...