#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

@interface Helpers : NSObject

@property(nonatomic,strong)NSDateFormatter *h_dateFormatter;

@property(nonatomic,strong)NSDateComponents *h_components;

+(BOOL)strIsEmty:(NSString *)str;

+(NSString *)getPathByMain:(NSString *)name

type:(NSString *)tp;

+ (NSString *)getPath:(NSString *)fileName;

+(BOOL)fileIsExit:(NSString *)path;

+(BOOL)deleteFile:(NSString *)path;

+(BOOL)dicIsExit:(NSString *)path;

+(BOOL)createFile:(NSString *)url

data:(NSData *)data;

+(BOOL)createDic:(NSString *)url;

+(NSString *)getNowStr;

+(int)getNowYear;

+(NSString *)getDateStr:(NSDate *)date;

+(NSDate *)getDateByString:(NSString *)str;

+(NSString *)getDateStrFromDate:(NSDate *)date bySeconds:(double)seconds;

+(NSDictionary *)getDateInfoForDate:(NSDate *)date;

+ (NSString *)convertToDateString:(NSDate *)date

withFormat:(NSString *)dateFormat;

+(NSString *)URLEncodedString:(NSString *)str;

+(NSString *)URLDecodedString:(NSString *)str;

+(BOOL)strIsChecked:(NSString *)str

checkStr:(NSString *)checkStr;

+(BOOL)objIsNull:(id)obj;

+(NSString *)inputStr:(id)ipStr;

+(BOOL)strIsEmail:(NSString *)targetStr;

+(BOOL)strIsMobileOrEmail:(NSString *)targetStr;

+(BOOL)strIsWordorNum:(NSString *)targetStr;

+(BOOL)strIsChinaWord:(NSString *)targetStr;

+(BOOL)strIsPassword:(NSString *)targetStr;

+(BOOL)strIsInLen:(int)tLen targetStr:(NSString *)tStr;

#pragma mark -

#pragma mark base64 string 加密以及解密

#define __BASE64( text )        [CommonFunc base64StringFromText:text]

#define __TEXT( base64 )        [CommonFunc textFromBase64String:base64]

/******************************************************************************

函数名称 : + (NSString *)base64StringFromText:(NSString *)text

函数描述 : 将文本转换为base64格式字符串

输入参数 : (NSString *)text    文本

输出参数 : N/A

返回参数 : (NSString *)    base64格式字符串

备注信息 :

******************************************************************************/

+ (NSString *)base64StringFromText:(NSString *)text;

/******************************************************************************

函数名称 : + (NSString *)textFromBase64String:(NSString *)base64

函数描述 : 将base64格式字符串转换为文本

输入参数 : (NSString *)base64  base64格式字符串

输出参数 : N/A

返回参数 : (NSString *)    文本

备注信息 :

******************************************************************************/

+ (NSString *)textFromBase64String:(NSString *)base64;

//分分秒秒

+ (NSString *)timeFormattedMMSS:(int)totalSeconds;

//时时分分秒秒

+ (NSString *)timeFormattedHHMMSS:(int)totalSeconds;

//通过字典串返回cgrect

+ (CGRect )strForCgrect:(NSDictionary *)dic;

//检测首字母不能为数字,中英文

+ (BOOL)strIsIllegal:(NSString *)targetStr;

//检测手机号

+ (BOOL)strIsMobile:(NSString *)targetStr;

//判断int数是否小于10,如果小于10 拼接0~

+ (NSString *)intIsLessThanTen:(int)little;

//是否包涵空格

+ (BOOL)stringIsContainBlank:(NSString *)targetStr;

//保存数据

+ (void)nsuserDefaultSetvalueWithKey:(NSString *)key Value:(NSString *)value;

//读取数据

+ (NSString *)nsuserDefaultObjectForKeyWithKey:(NSString *)key;

@end

#import "Helpers.h"

#import <CommonCrypto/CommonCryptor.h>

#import <UIKit/UIKit.h>

static NSDateFormatter *dateFormatter = nil;

@implementation Helpers

+(BOOL)strIsEmty:(NSString *)str

{

if (str == nil || str == NULL) {

return YES;

}

if ([str isKindOfClass:[NSNull class]]) {

return YES;

}

if (str.length == 0) {

return YES;

}

return NO;

}

+(NSString *)getPathByMain:(NSString *)name

type:(NSString *)tp

{

return [[NSBundle mainBundle] pathForResource:name ofType:tp];

}

+ (NSString *)getPath:(NSString *)fileName

{

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

return  [[paths objectAtIndex:0] stringByAppendingPathComponent:fileName];

}

+(BOOL)fileIsExit:(NSString *)path

{

NSFileManager *_fm = [NSFileManager defaultManager];

BOOL _flag = NO;

if (path) {

return [_fm fileExistsAtPath:path isDirectory:&_flag];

}else{

return NO;

}

}

+(BOOL)deleteFile:(NSString *)path

{

NSFileManager *_fm = [NSFileManager defaultManager];

if (path) {

return [_fm removeItemAtPath:path error:nil];

}else{

return NO;

}

}

+(BOOL)dicIsExit:(NSString *)path

{

NSFileManager *_fm = [NSFileManager defaultManager];

if (path) {

BOOL _flag = YES;

return [_fm fileExistsAtPath:path isDirectory:&_flag];

}else{

return NO;

}

}

+(BOOL)createFile:(NSString *)url

data:(NSData *)data

{

if (url && data) {

NSFileManager   *_fm = [NSFileManager defaultManager];

return [_fm createFileAtPath:url contents:data attributes:nil];

}else{

return NO;

}

}

+(BOOL)createDic:(NSString *)url

{

if (url) {

NSFileManager   *_fm = [NSFileManager defaultManager];

return [_fm createDirectoryAtPath:url

withIntermediateDirectories:YES

attributes:nil

error:nil];

}else{

return NO;

}

}

+(NSString *)getDateStrFromDate:(NSDate *)date

bySeconds:(double)seconds

{

NSDateComponents *components = [[NSCalendar currentCalendar] components:

NSDayCalendarUnit |

NSMonthCalendarUnit |

NSYearCalendarUnit |

NSHourCalendarUnit |

NSMinuteCalendarUnit |

NSSecondCalendarUnit

fromDate:[NSDate dateWithTimeInterval:seconds sinceDate:date]];

return [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d",

(int)[components year],

(int)[components month],

(int)[components day],

(int)[components hour],

(int)[components minute],

(int)[components second]

];

}

+(NSDictionary *)getDateInfoForDate:(NSDate *)date

{

if (date) {

NSDateComponents *components = [[NSCalendar currentCalendar] components:

NSDayCalendarUnit |

NSMonthCalendarUnit |

NSYearCalendarUnit |

NSHourCalendarUnit |

NSMinuteCalendarUnit |

NSSecondCalendarUnit |

NSWeekdayCalendarUnit

fromDate:date];

return @{

@"year":[NSString stringWithFormat:@"%04d",(int)[components year]],

@"month":[NSString stringWithFormat:@"%02d",(int)[components month]],

@"day":[NSString stringWithFormat:@"%02d",(int)[components day]],

@"hour":[NSString stringWithFormat:@"%02d",(int)[components hour]],

@"minute":[NSString stringWithFormat:@"%02d",(int)[components minute]],

@"second":[NSString stringWithFormat:@"%02d",(int)[components second]],

@"weekday":[NSString stringWithFormat:@"%d",(int)[components weekday]]

};

}

else{

return nil;

}

}

+(NSString *)getNowStr

{

NSDateComponents *components = [[NSCalendar currentCalendar] components:

NSDayCalendarUnit |

NSMonthCalendarUnit |

NSYearCalendarUnit |

NSHourCalendarUnit |

NSMinuteCalendarUnit |

NSSecondCalendarUnit

fromDate:[NSDate date]];

return [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d",

(int)[components year],

(int)[components month],

(int)[components day],

(int)[components hour],

(int)[components minute],

(int)[components second]

];

}

+(int)getNowYear

{

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit

fromDate:[NSDate date]];

return (int)[components year];

}

+(NSString *)getDateStr:(NSDate *)date

{

NSDateComponents *components = [[NSCalendar currentCalendar] components:

NSDayCalendarUnit |

NSMonthCalendarUnit |

NSYearCalendarUnit |

NSHourCalendarUnit |

NSMinuteCalendarUnit |

NSSecondCalendarUnit

fromDate:date ];

return [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d",

(int)[components year],

(int)[components month],

(int)[components day],

(int)[components hour],

(int)[components minute],

(int)[components second]

];

}

+(NSDate *)getDateByString:(NSString *)str

{

if ( str == nil || [@"" isEqualToString:str]) {

str = @"1970-01-01 00:00:00";

}

if (!dateFormatter) {

dateFormatter = [[NSDateFormatter alloc] init];

}

[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss"];

return [dateFormatter dateFromString:str];

}

+ (NSString *)convertToDateString:(NSDate *)date

withFormat:(NSString *)dateFormat

{

if (!dateFormatter) {

dateFormatter = [[NSDateFormatter alloc] init];

}

[dateFormatter setDateFormat:dateFormat];

//    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT{8}"]];

return [dateFormatter stringFromDate:date];

}

+(BOOL)strIsChecked:(NSString *)str

checkStr:(NSString *)checkStr

{

BOOL _flag = NO;

if (str && ![str isEqual:[NSNull null]]) {

//NSString *_checkStr = @"^[0-9]{3}$";

//@"^[0-9]+-*[0-9]+$";

NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:checkStr

options:0

error:nil];

if (regex2){//对象进行匹配

NSTextCheckingResult *result2 = [regex2 firstMatchInString:str

options:0

range:NSMakeRange(0, str.length)];

if (result2)  {

_flag = YES;

}

}

}

return _flag;

}

+(NSString *)URLEncodedString:(NSString *)str

{

NSString *result = (__bridge_transfer NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,

(CFStringRef)str,

NULL,

CFSTR("!*'();:@&=+$,/?%#[]"),

kCFStringEncodingUTF8);

return result;

}

+(NSString *)URLDecodedString:(NSString *)str

{

NSString *result = (__bridge_transfer NSString*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,

(CFStringRef)str,

CFSTR(""),

kCFStringEncodingUTF8);

return result;

}

+(BOOL)objIsNull:(id)obj

{

BOOL _flag = YES;

if (obj && ![obj isEqual:[NSNull null]]) {

_flag = NO;

}

return _flag;

}

+(NSString *)inputStr:(id)ipStr

{

NSString *_result = @"";

if (ipStr == nil || ipStr == NULL) {

return _result = @"";

}

if ([ipStr isKindOfClass:[NSNull class]]) {

return _result = @"";

}

if ([ipStr isKindOfClass:[NSString class]]) {

_result = ipStr;

}

if ([ipStr isKindOfClass:[NSNumber class]]) {

_result = [(NSNumber *)ipStr stringValue];

}

return _result;

}

+(BOOL)strIsMobileOrEmail:(NSString *)targetStr

{

BOOL _flag = NO;

//匹配6-15个由字母/数字组成的字符串的正则表达式:

NSString *_phoneNumRegex = @"1[0-9]{10}";

//匹配邮箱格式

NSString *_emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

NSPredicate *_pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _phoneNumRegex];

if ([_pred evaluateWithObject:targetStr]) {

_flag = YES;

}

else{

_pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _emailRegex];

if ([_pred evaluateWithObject:targetStr]) {

_flag = YES;

}

}

return _flag;

}

+ (BOOL)strIsMobile:(NSString *)targetStr

{

BOOL _flag = NO;

NSString *_phoneNum = @"1[0-9]{10}";

NSPredicate *_pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",_phoneNum];

if ([_pre evaluateWithObject:targetStr]) {

_flag = YES;

}

return _flag;

}

+ (BOOL)strIsPassword:(NSString *)targetStr

{

//长度小于等于6

if (targetStr.length < 6) {

return NO;

} else if ([targetStr rangeOfString:@"@"].length > 0){//包含特殊字符@

return  NO;

} else if (targetStr.length >= 16) {//大于等于16

return NO;

} else {

return  YES;

}

}

+(BOOL)strIsEmail:(NSString *)targetStr

{

BOOL _flag = NO;

//匹配邮箱格式

NSString *_emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

NSPredicate *_pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _emailRegex];

if ([_pred evaluateWithObject:targetStr]) {

_flag = YES;

}

return _flag;

}

+(BOOL)strIsWordorNum:(NSString *)targetStr

{

BOOL _flag = NO;

NSString *_emailRegex = @"[A-Z0-9a-z\u4e00-\u9fa5]*";

NSPredicate *_pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _emailRegex];

if ([_pred evaluateWithObject:targetStr]) {

_flag = YES;

}

return _flag;

}

//检测首字母不能为数字,长度不能大于12字节,中英文

+ (BOOL)strIsIllegal:(NSString *)targetStr

{

BOOL _flag = NO;

NSString *_userName = @"^[^0-9][A-Za-z0-9_\u4e00-\u9fa5]*";

NSPredicate *_pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _userName];

if ([_pred evaluateWithObject:targetStr]) {

_userName = @"^[A-Za-z0-9_\u4e00-\u9fa5]*";

NSPredicate *_pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _userName];

if ([_pre evaluateWithObject:targetStr]) {

_flag = YES;

}

}

return _flag;

}

+(BOOL)strIsChinaWord:(NSString *)targetStr

{

BOOL _flag = NO;

NSString *_emailRegex = @"[\u4e00-\u9fa5]*";

NSPredicate *_pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", _emailRegex];

if ([_pred evaluateWithObject:targetStr]) {

_flag = YES;

}

return _flag;

}

//判断是否在多少字符之内

+(BOOL)strIsInLen:(int)tLen

targetStr:(NSString *)tStr

{

BOOL _flag  = NO;

int _sLen   = 0;

NSString *_tStr = [Helpers inputStr:tStr];

long l = 0;

if (![@"" isEqualToString:_tStr]) {

for (int i = 0; i < _tStr.length; i++) {

NSString *_s = [_tStr substringWithRange:NSMakeRange(i, 1)];

l = strlen([_s cStringUsingEncoding:NSUTF8StringEncoding]);

if (l == 1) {

_sLen++;

}

else if(l == 3)

{

_sLen += 2;

}

else{

_sLen = tLen + 1;

break;

}

}

}

if (_sLen <= tLen && _sLen != 0) {

_flag = YES;

}

return _flag;

}

//空字符串

#define     LocalStr_None           @""

static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

+ (NSString *)base64StringFromText:(NSString *)text

{

if (text && ![text isEqualToString:LocalStr_None]) {

//取项目的bundleIdentifier作为KEY  改动了此处

//NSString *key = [[NSBundle mainBundle] bundleIdentifier];

NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding];

//IOS 自带DES加密 Begin  改动了此处

//data = [self DESEncrypt:data WithKey:key];

//IOS 自带DES加密 End

return [self base64EncodedStringFrom:data];

}

else {

return LocalStr_None;

}

}

+ (NSString *)textFromBase64String:(NSString *)base64

{

if (base64 && ![base64 isEqualToString:LocalStr_None]) {

//取项目的bundleIdentifier作为KEY   改动了此处

//NSString *key = [[NSBundle mainBundle] bundleIdentifier];

NSData *data = [self dataWithBase64EncodedString:base64];

//IOS 自带DES解密 Begin    改动了此处

//data = [self DESDecrypt:data WithKey:key];

//IOS 自带DES加密 End

return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

}

else {

return LocalStr_None;

}

}

/******************************************************************************

函数名称 : + (NSData *)DESEncrypt:(NSData *)data WithKey:(NSString *)key

函数描述 : 文本数据进行DES加密

输入参数 : (NSData *)data

(NSString *)key

输出参数 : N/A

返回参数 : (NSData *)

备注信息 : 此函数不可用于过长文本

******************************************************************************/

+ (NSData *)DESEncrypt:(NSData *)data WithKey:(NSString *)key

{

char keyPtr[kCCKeySizeAES256+1];

bzero(keyPtr, sizeof(keyPtr));

[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

NSUInteger dataLength = [data length];

size_t bufferSize = dataLength + kCCBlockSizeAES128;

void *buffer = malloc(bufferSize);

size_t numBytesEncrypted = 0;

CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,

kCCOptionPKCS7Padding | kCCOptionECBMode,

keyPtr, kCCBlockSizeDES,

NULL,

[data bytes], dataLength,

buffer, bufferSize,

&numBytesEncrypted);

if (cryptStatus == kCCSuccess) {

return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];

}

free(buffer);

return nil;

}

/******************************************************************************

函数名称 : + (NSData *)DESEncrypt:(NSData *)data WithKey:(NSString *)key

函数描述 : 文本数据进行DES解密

输入参数 : (NSData *)data

(NSString *)key

输出参数 : N/A

返回参数 : (NSData *)

备注信息 : 此函数不可用于过长文本

******************************************************************************/

+ (NSData *)DESDecrypt:(NSData *)data WithKey:(NSString *)key

{

char keyPtr[kCCKeySizeAES256+1];

bzero(keyPtr, sizeof(keyPtr));

[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

NSUInteger dataLength = [data length];

size_t bufferSize = dataLength + kCCBlockSizeAES128;

void *buffer = malloc(bufferSize);

size_t numBytesDecrypted = 0;

CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmDES,

kCCOptionPKCS7Padding | kCCOptionECBMode,

keyPtr, kCCBlockSizeDES,

NULL,

[data bytes], dataLength,

buffer, bufferSize,

&numBytesDecrypted);

if (cryptStatus == kCCSuccess) {

return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];

}

free(buffer);

return nil;

}

/******************************************************************************

函数名称 : + (NSData *)dataWithBase64EncodedString:(NSString *)string

函数描述 : base64格式字符串转换为文本数据

输入参数 : (NSString *)string

输出参数 : N/A

返回参数 : (NSData *)

备注信息 :

******************************************************************************/

+ (NSData *)dataWithBase64EncodedString:(NSString *)string

{

if (string == nil)

[NSException raise:NSInvalidArgumentException format:nil];

if ([string length] == 0)

return [NSData data];

static char *decodingTable = NULL;

if (decodingTable == NULL)

{

decodingTable = malloc(256);

if (decodingTable == NULL)

return nil;

memset(decodingTable, CHAR_MAX, 256);

NSUInteger i;

for (i = 0; i < 64; i++)

decodingTable[(short)encodingTable[i]] = i;

}

const char *characters = [string cStringUsingEncoding:NSASCIIStringEncoding];

if (characters == NULL)     //  Not an ASCII string!

return nil;

char *bytes = malloc((([string length] + 3) / 4) * 3);

if (bytes == NULL)

return nil;

NSUInteger length = 0;

NSUInteger i = 0;

while (YES)

{

char buffer[4];

short bufferLength;

for (bufferLength = 0; bufferLength < 4; i++)

{

if (characters[i] == '\0')

break;

if (isspace(characters[i]) || characters[i] == '=')

continue;

buffer[bufferLength] = decodingTable[(short)characters[i]];

if (buffer[bufferLength++] == CHAR_MAX)      //  Illegal character!

{

free(bytes);

return nil;

}

}

if (bufferLength == 0)

break;

if (bufferLength == 1)      //  At least two characters are needed to produce one byte!

{

free(bytes);

return nil;

}

//  Decode the characters in the buffer to bytes.

bytes[length++] = (buffer[0] << 2) | (buffer[1] >> 4);

if (bufferLength > 2)

bytes[length++] = (buffer[1] << 4) | (buffer[2] >> 2);

if (bufferLength > 3)

bytes[length++] = (buffer[2] << 6) | buffer[3];

}

bytes = realloc(bytes, length);

return [NSData dataWithBytesNoCopy:bytes length:length];

}

/******************************************************************************

函数名称 : + (NSString *)base64EncodedStringFrom:(NSData *)data

函数描述 : 文本数据转换为base64格式字符串

输入参数 : (NSData *)data

输出参数 : N/A

返回参数 : (NSString *)

备注信息 :

******************************************************************************/

+ (NSString *)base64EncodedStringFrom:(NSData *)data

{

if ([data length] == 0)

return @"";

char *characters = malloc((([data length] + 2) / 3) * 4);

if (characters == NULL)

return nil;

NSUInteger length = 0;

NSUInteger i = 0;

while (i < [data length])

{

char buffer[3] = {0,0,0};

short bufferLength = 0;

while (bufferLength < 3 && i < [data length])

buffer[bufferLength++] = ((char *)[data bytes])[i++];

//  Encode the bytes in the buffer to four characters, including padding "=" characters if necessary.

characters[length++] = encodingTable[(buffer[0] & 0xFC) >> 2];

characters[length++] = encodingTable[((buffer[0] & 0x03) << 4) | ((buffer[1] & 0xF0) >> 4)];

if (bufferLength > 1)

characters[length++] = encodingTable[((buffer[1] & 0x0F) << 2) | ((buffer[2] & 0xC0) >> 6)];

else characters[length++] = '=';

if (bufferLength > 2)

characters[length++] = encodingTable[buffer[2] & 0x3F];

else characters[length++] = '=';

}

return [[NSString alloc] initWithBytesNoCopy:characters length:length encoding:NSASCIIStringEncoding freeWhenDone:YES];

}

//分分秒秒

+ (NSString *)timeFormattedMMSS:(int)totalSeconds

{

int seconds = totalSeconds % 60;

int minutes = totalSeconds / 60;

return [NSString stringWithFormat:@"%02d:%02d",minutes, seconds];

}

//时时分分秒秒

+ (NSString *)timeFormattedHHMMSS:(int)totalSeconds

{

int seconds = totalSeconds % 60;

int minutes = (totalSeconds / 60) % 60;

int hours = totalSeconds / 3600;

return [NSString stringWithFormat:@"%02d:%02d:%02d",hours, minutes, seconds];

}

//将"60_20_200_30"返回一个cgrect

+ (CGRect )strForCgrect:(NSString *)str

{

//    NSMutableDictionary *_result = [@{}mutableCopy];

CGRect frame = CGRectZero;

if (str) {

NSString *_fFrameStr = str;

if (_fFrameStr) {

CGRect _fra = CGRectZero;

NSArray *_frameAry = [_fFrameStr componentsSeparatedByString:@"_"];

float _x = 0;

float _y = 0;

float _fx = 0;

float _fy = 0;

_x = [(NSString *)_frameAry[0] floatValue];

_y = [(NSString *)_frameAry[1] floatValue];

_fx = [(NSString *)_frameAry[2] floatValue];

_fy = [(NSString *)_frameAry[3] floatValue];

_fra = CGRectMake(_x, _y, _fx, _fy);

frame = _fra;

}

}

return frame;

}

//判断int数是否小于10,如果小于10 拼接0~

+ (NSString *)intIsLessThanTen:(int)little

{

NSString *resultString = @"";

if (little < 10) {

resultString = [NSString stringWithFormat:@"0%d",little];

}else

{

resultString = [NSString stringWithFormat:@"%d",little];

}

return resultString;

}

//是否包涵空格

+ (BOOL)stringIsContainBlank:(NSString *)targetStr

{

BOOL _flag = NO;

if ([targetStr containsString:@" "]) {

_flag = YES;

}else

{

_flag = NO;

}

return _flag;

}

//保存数据

+ (void)nsuserDefaultSetvalueWithKey:(NSString *)key Value:(NSString *)value

{

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setValue:value forKey:key];

}

//读取数据

+ (NSString *)nsuserDefaultObjectForKeyWithKey:(NSString *)key

{

NSString *resultString = [NSString string];

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

resultString = [userDefaults objectForKey:key];

return resultString;

}

@end

ios 加密解密工具类字符判断等的更多相关文章

  1. Base64加密解密工具类

    使用Apache commons codec类Base64进行加密解密 maven依赖 <dependency> <groupId>commons-codec</grou ...

  2. .Net(c#)加密解密工具类:

    /// <summary> /// .Net加密解密帮助类 /// </summary> public class NetCryptoHelper { #region des实 ...

  3. java加密解密工具类

    package com.founder.mrp.util; import java.nio.charset.StandardCharsets; import java.security.Key; im ...

  4. AES加密解密工具类封装(AESUtil)

    package club.codeapes.common.utils; import org.springframework.util.Base64Utils; import javax.crypto ...

  5. 加密解密工具类(Java,DES)

    一个Java版的DES加密工具类,能够用来进行网络传输数据加密,保存password的时候进行加密. import java.security.Key; import java.security.sp ...

  6. java 加密解密工具类(实用!!!)

    最近发现了一个加密解密的好例子,很方便使用,可以作为平时开发的工具集,记录一下. package com.sh.springboottdemo2.util; import com.sun.org.ap ...

  7. des 加密解密工具类

    最近在做des的双对称加密解密,特此记录一下. des对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码 ...

  8. 自写AES加密解密工具类

    此类主要用于加密与解密,采用128位ECB模式,PKCS5Padding填充补位. 可使用方法为加密返回二进制encryptBin(content, key).加密返回十六进制encryptHex(c ...

  9. Java-DES算法加密解密工具类

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import ...

随机推荐

  1. SpringBoot 集成Spring security

    Spring security作为一种安全框架,使用简单,能够很轻松的集成到springboot项目中,下面讲一下如何在SpringBoot中集成Spring Security.使用gradle项目管 ...

  2. HTML基础之DOM常用操作

    DOM(Document Object Model ),文档对象模型,主要用于对HTML和XML文档的内容进行操作. 一.查找节点 直接获取标签 document.getElementById('i1 ...

  3. cordic算法的verilog实现及modelsim仿真

    1. 算法介绍 CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数.双曲 ...

  4. KS检验学习[转载]

    转自:https://wenku.baidu.com/view/ccfa573a3968011ca30091d6.html https://www.cnblogs.com/arkenstone/p/5 ...

  5. Selenium IDE的一些操作

    1.运行速度过快时,可能出现找不到元素的情况,影响运行结果,将速度调慢慢一些,就可以运行成功. 如果为其他情况找不到元素,则需要另外找原因,有可能元素定位有问题,有可能无该元素. 2.导出录制的脚本为 ...

  6. cocos代码研究(14)Widget子类Button学习笔记

    理论基础 表示一个按钮组件. 按钮可以被按下,或者点击, 并且在按下或者点击之后,可以由用户指定一个动作来执行,继承自 Widget. 代码部分 static Button * create ()创建 ...

  7. java之标记型接口Cloneable

    1.克隆用途. Cloneable和Serializable一样都是标记型接口,它们内部都没有方法和属性,implements Cloneable表示该对象能被克隆,能使用Object.clone() ...

  8. SQL: 查找空值

    ①用 IS NULL ②NULL 不能用 “=” 运算符 ③NULL 不支持加.减.乘.除.大小比较.相等比较 ④不同的函数对NULL的支持不一样,在遇到NULL时最好测试一下结果会受什么影响,不能仅 ...

  9. P4099 [HEOI2013]SAO(树形dp)

    P4099 [HEOI2013]SAO 我们设$f[u][k]$表示以拓扑序编号为$k$的点$u$,以$u$为根的子树中的元素所组成的序列方案数 蓝后我们在找一个以$v$为根的子树. 我们的任务就是在 ...

  10. cookie注入原理详解(一)

    那我们还是围绕以下几个问题来看看cookie注入: 1.什么是cookie注入? 2.为什么要cookie注入? 3.怎样cookie注入? 1.什么是cookie注入? ♦cookie注入的原理是: ...