1聘惦、手機(jī)號(hào)轉(zhuǎn)****
+ (NSString*)numberSuitScanf:(NSString*)number{
? ? if(number.length>5) {
? ? ? ? NSString *numberString = [number stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"];
? ? ? ? return numberString;
? ? }
? ? return number;
}
2溪烤、從URL中獲取參數(shù)字典
+ (NSDictionary*)dictionaryWithUrlString:(NSString*)urlStr{
? ? if(urlStr && urlStr.length&& [urlStr rangeOfString:@"?"].length==1) {
? ? ? ? NSArray *array = [urlStr componentsSeparatedByString:@"?"];
? ? ? ? if(array && array.count==2) {
? ? ? ? ? ? NSString*paramsStr = array[1];
? ? ? ? ? ? if(paramsStr.length) {
? ? ? ? ? ? ? ? NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
? ? ? ? ? ? ? ? NSArray*paramArray = [paramsStr componentsSeparatedByString:@"&"];
? ? ? ? ? ? ? ? for(NSString*param in paramArray) {
? ? ? ? ? ? ? ? ? ? if(param && param.length) {
? ? ? ? ? ? ? ? ? ? ? ? NSArray*parArr = [param componentsSeparatedByString:@"="];
? ? ? ? ? ? ? ? ? ? ? ? if(parArr.count==2) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? [paramsDict setObject:parArr[1]forKey:parArr[0]];
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? return paramsDict;
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? return nil;
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? return nil;
? ? ? ? }
? ? }else{
? ? ? ? return nil;
? ? }
}
3、比較本地版本和服務(wù)器版本大小
+ (NSInteger)compareVersion:(NSString*)v1 to:(NSString*)v2 {
? ? // 都為空景醇,相等,返回0
? ? if(!v1 && !v2) {
? ? ? ? return0;
? ? }
?? // v1為空,v2不為空,返回-1
? ? if(!v1 && v2) {
? ? ? ? return-1;
? ? }
? ? // v2為空啊易,v1不為空,返回1
? ? if(v1 && !v2) {
? ? ? ? return1;
? ? }
? ? // 獲取版本號(hào)字段
? ? NSArray *v1Array = [v1 componentsSeparatedByString:@"."];
? ? NSArray *v2Array = [v2 componentsSeparatedByString:@"."];
? ? // 取字段最少的饮睬,進(jìn)行循環(huán)比較
? ? NSIntegersmallCount = (v1Array.count> v2Array.count) ? v2Array.count: v1Array.count;
? ? for(inti =0; i < smallCount; i++) {
? ? ? ? NSIntegervalue1 = [[v1Array objectAtIndex:i]integerValue];
? ? ? ? NSIntegervalue2 = [[v2Array objectAtIndex:i]integerValue];
? ? ? ? if(value1 > value2) {
? ? ? ? ? ? // v1版本字段大于v2版本字段租谈,返回1
? ? ? ? ? ? return1;
? ? ? ? }elseif(value1 < value2) {
? ? ? ? ? ? // v2版本字段大于v1版本字段,返回-1
? ? ? ? ? ? return-1;
? ? ? ? }
? ? ? ? // 版本相等捆愁,繼續(xù)循環(huán)割去。
? ? }
? ? // 版本可比較字段相等,則字段多的版本高于字段少的版本昼丑。
? ? if(v1Array.count> v2Array.count) {
? ? ? ? return 1;
? ? }elseif(v1Array.count< v2Array.count) {
? ? ? ? return -1;
? ? }else{
? ? ? ? return 0;
? ? }
? ? return0;
}
4呻逆、判斷APP是否打開接收通知功能
+ (BOOL)isUserNotificationEnable {// 判斷用戶是否允許接收通知
? ? BOOL isEnable =NO;
? ? UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
? ? isEnable = (UIUserNotificationTypeNone== setting.types) ?NO:YES;
? ? return isEnable;
}
5、去設(shè)置打開APP的通知接收功能
// 如果用戶關(guān)閉了接收通知功能菩帝,該方法可以跳轉(zhuǎn)到APP設(shè)置頁面進(jìn)行修改? iOS版本 >=8.0 處理邏輯
+ (void)goToAppSystemSetting {
? ? UIApplication *application = [UIApplication sharedApplication];
? ? NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
? ? if([application canOpenURL:url]) {
? ? ? ? if([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {
? ? ? ? ? ? if(@available(iOS10.0, *)) {
? ? ? ? ? ? ? ? [application openURL:urloptions:@{}completionHandler:nil];
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? [application openURL:url];
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? [application openURL:url];
? ? ? ? }
? ? }
}
6咖城、去App Store評(píng)價(jià)APP
+ (void)gotEvaluation{
? ? NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",@"你APP的APPID"];
? ? if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:str]]) {
? ? ? ? if(@available(iOS10.0, *)) {
? ? ? ? ? ? [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str] options:@{UIApplicationOpenURLOptionsSourceApplicationKey : @YES} completionHandler:nil];
? ? ? ? }else{
? ? ? ? ? ? [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
? ? ? ? }
? ? }
}
7憔足、獲取APP緩存的大小返回M
+ (NSUInteger)getSize {
? ? NSUIntegersize =0;
? ? NSFileManager *fileManager = [NSFileManager defaultManager];
? ? NSString * cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
? ? NSDirectoryEnumerator*fileEnumerator = [fileManagerenumeratorAtPath:cachePath];
? ? for(NSString*fileNameinfileEnumerator) {
? ? ? ? NSString*filePath = [cachePath stringByAppendingPathComponent:fileName];
? ? ? ? NSDictionary*attrs = [fileManager attributesOfItemAtPath:filePatherror:nil];
? ? ? ? size += [attrs fileSize];
? ? }
? ? CGFloat cacheM = size/1024/1024.0;
? ? return cacheM;
}
8、清除APP的緩存
+ (void)clearFile
{
? ? NSFileManager *fileManager = [NSFileManager defaultManager];
? ? NSString * cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
? ? NSDirectoryEnumerator*fileEnumerator = [fileManager enumeratorAtPath:cachePath];
? ? for(NSString*fileName in fileEnumerator) {
? ? ? ? NSString*filePath = [cachePath stringByAppendingPathComponent:fileName];
? ? ? ? [fileManager removeItemAtPath:filePatherror:nil];
? ? }
}