ios 常用工具类

[java]  view plain copy
  1. #import "Utility.h"  
  2.   
  3.   
  4. @implementation Utility  
  5.   
  6. +(NSString *)createMD5:(NSString *)signString  
  7. {  
  8.     const char*cStr =[signString UTF8String];  
  9.     unsigned char result[16];  
  10.     CC_MD5(cStr, strlen(cStr), result);  
  11.     return[NSString stringWithFormat:  
  12.            @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",  
  13.            result[0], result[1], result[2], result[3],  
  14.            result[4], result[5], result[6], result[7],  
  15.            result[8], result[9], result[10], result[11],  
  16.            result[12], result[13], result[14], result[15]  
  17.            ];  
  18. }  
  19.   
  20.   
  21. +(NSString *)createPostURL:(NSMutableDictionary *)params  
  22. {  
  23.     NSString *postString=@"";  
  24.     for(NSString *key in [params allKeys])  
  25.     {  
  26.         NSString *value=[params objectForKey:key];  
  27.         postString=[postString stringByAppendingFormat:@"%@=%@&",key,value];  
  28.     }  
  29.     if([postString length]>1)  
  30.     {  
  31.         postString=[postString substringToIndex:[postString length]-1];  
  32.     }  
  33.     return postString;  
  34. }  
  35.   
  36. +(NSString *)getCurrentDate  
  37. {  
  38.     NSDateFormatter *dateFormatter=[[[NSDateFormatter alloc] init] autorelease];  
  39.     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  
  40.     return [dateFormatter stringFromDate:[NSDate date]];  
  41. }  
  42.   
  43. +(BOOL) connectedToNetwork  
  44. {  
  45.     // Create zero addy  
  46.     struct sockaddr_in zeroAddress;  
  47.     bzero(&zeroAddress, sizeof(zeroAddress));  
  48.     zeroAddress.sin_len = sizeof(zeroAddress);  
  49.     zeroAddress.sin_family = AF_INET;  
  50.       
  51.     // Recover reachability flags  
  52.     SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);      
  53.     SCNetworkReachabilityFlags flags;  
  54.       
  55.     BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);  
  56.     CFRelease(defaultRouteReachability);  
  57.       
  58.     if (!didRetrieveFlags)   
  59.     {  
  60.         printf("Error. Could not recover network reachability flags\n");  
  61.         return NO;  
  62.     }  
  63.       
  64.     BOOL isReachable = ((flags & kSCNetworkFlagsReachable) != 0);  
  65.     BOOL needsConnection = ((flags & kSCNetworkFlagsConnectionRequired) != 0);  
  66.     return (isReachable && !needsConnection) ? YES : NO;  
  67. }  
  68.   
  69. // Direct from Apple. Thank you Apple  
  70. + (BOOL)addressFromString:(NSString *)IPAddress address:(struct sockaddr_in *)address  
  71. {  
  72.     if (!IPAddress || ![IPAddress length]) return NO;  
  73.       
  74.     memset((char *) address, sizeof(struct sockaddr_in), 0);  
  75.     address->sin_family = AF_INET;  
  76.     address->sin_len = sizeof(struct sockaddr_in);  
  77.       
  78.     int conversionResult = inet_aton([IPAddress UTF8String], &address->sin_addr);  
  79.     if (conversionResult == 0) {  
  80.         NSAssert1(conversionResult != 1, @"Failed to convert the IP address string into a sockaddr_in: %@", IPAddress);  
  81.         return NO;  
  82.     }  
  83.       
  84.     return YES;  
  85. }  
  86.   
  87. + (NSString *) getIPAddressForHost: (NSString *) theHost  
  88. {  
  89.     theHost=[theHost substringFromIndex:7];  
  90.     //NSLog(@"%@",theHost);  
  91.     struct hostent *host = gethostbyname([theHost UTF8String]);  
  92.     if (!host) {herror("resolv"); return NULL; }  
  93.     struct in_addr **list = (struct in_addr **)host->h_addr_list;  
  94.     NSString *addressString = [NSString stringWithCString:inet_ntoa(*list[0]) encoding:NSUTF8StringEncoding];  
  95.     return addressString;  
  96. }  
  97.   
  98.   
  99. + (BOOL) hostAvailable: (NSString *) theHost  
  100. {  
  101.       
  102.     NSString *addressString = [self getIPAddressForHost:theHost];  
  103.     if (!addressString)  
  104.     {  
  105.         printf("Error recovering IP address from host name\n");  
  106.         return NO;  
  107.     }  
  108.       
  109.     struct sockaddr_in address;  
  110.     BOOL gotAddress = [self addressFromString:addressString address:&address];  
  111.       
  112.     if (!gotAddress)  
  113.     {  
  114.         printf("Error recovering sockaddr address from %s\n", [addressString UTF8String]);  
  115.         return NO;  
  116.     }  
  117.       
  118.     SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&address);  
  119.     SCNetworkReachabilityFlags flags;  
  120.       
  121.     BOOL didRetrieveFlags =SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);  
  122.     CFRelease(defaultRouteReachability);  
  123.       
  124.     if (!didRetrieveFlags)  
  125.     {  
  126.         printf("Error. Could not recover network reachability flags\n");  
  127.         return NO;  
  128.     }  
  129.       
  130.     BOOL isReachable = flags & kSCNetworkFlagsReachable;  
  131.     return isReachable ? YES : NO;;  
  132. }  
  133.   
  134.   
  135. //通过区分字符串  
  136.   
  137. +(BOOL)validateEmail:(NSString*)email  
  138. {  
  139.     if((0 != [email rangeOfString:@"@"].length) &&  
  140.        (0 != [email rangeOfString:@"."].length))  
  141.     {  
  142.         NSCharacterSet* tmpInvalidCharSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];  
  143.         NSMutableCharacterSet* tmpInvalidMutableCharSet = [[tmpInvalidCharSet mutableCopy] autorelease];  
  144.         [tmpInvalidMutableCharSet removeCharactersInString:@"_-"];  
  145.           
  146.           
  147.         NSRange range1 = [email rangeOfString:@"@"  
  148.                                       options:NSCaseInsensitiveSearch];  
  149.           
  150.         //取得用户名部分  
  151.         NSString* userNameString = [email substringToIndex:range1.location];  
  152.         NSArray* userNameArray   = [userNameString componentsSeparatedByString:@"."];  
  153.           
  154.         for(NSString* string in userNameArray)  
  155.         {  
  156.             NSRange rangeOfInavlidChars = [string rangeOfCharacterFromSet: tmpInvalidMutableCharSet];  
  157.             if(rangeOfInavlidChars.length != 0 || [string isEqualToString:@""])  
  158.                 return NO;  
  159.         }  
  160.           
  161.         //取得域名部分  
  162.         NSString *domainString = [email substringFromIndex:range1.location+1];  
  163.         NSArray *domainArray   = [domainString componentsSeparatedByString:@"."];  
  164.           
  165.         for(NSString *string in domainArray)  
  166.         {  
  167.             NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet:tmpInvalidMutableCharSet];  
  168.             if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""])  
  169.                 return NO;  
  170.         }  
  171.           
  172.         return YES;  
  173.     }  
  174.     else {  
  175.         return NO;  
  176.     }  
  177. }  
  178.   
  179. //利用正则表达式验证  
  180. +(BOOL)isValidateEmail:(NSString *)email {  
  181.     NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";   
  182.     NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];   
  183.     return [emailTest evaluateWithObject:email];  
  184. }  
  185.   
  186. +(BOOL)isValidateString:(NSString *)myString  
  187. {  
  188.     NSCharacterSet *nameCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] invertedSet];  
  189.     NSRange userNameRange = [myString rangeOfCharacterFromSet:nameCharacters];  
  190.     if (userNameRange.location != NSNotFound) {  
  191.         //NSLog(@"包含特殊字符");  
  192.         return FALSE;  
  193.     }else{  
  194.         return TRUE;  
  195.     }  
  196.   
  197. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值