ios 常用工具類

來源:互聯網
上載者:User
#import "Utility.h"@implementation Utility+(NSString *)createMD5:(NSString *)signString{    const char*cStr =[signString UTF8String];    unsigned char result[16];    CC_MD5(cStr, strlen(cStr), result);    return[NSString stringWithFormat:           @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",           result[0], result[1], result[2], result[3],           result[4], result[5], result[6], result[7],           result[8], result[9], result[10], result[11],           result[12], result[13], result[14], result[15]           ];}+(NSString *)createPostURL:(NSMutableDictionary *)params{    NSString *postString=@"";    for(NSString *key in [params allKeys])    {        NSString *value=[params objectForKey:key];        postString=[postString stringByAppendingFormat:@"%@=%@&",key,value];    }    if([postString length]>1)    {        postString=[postString substringToIndex:[postString length]-1];    }    return postString;}+(NSString *)getCurrentDate{    NSDateFormatter *dateFormatter=[[[NSDateFormatter alloc] init] autorelease];    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];    return [dateFormatter stringFromDate:[NSDate date]];}+(BOOL) connectedToNetwork{    // Create zero addy    struct sockaddr_in zeroAddress;    bzero(&zeroAddress, sizeof(zeroAddress));    zeroAddress.sin_len = sizeof(zeroAddress);    zeroAddress.sin_family = AF_INET;        // Recover reachability flags    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);        SCNetworkReachabilityFlags flags;        BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);    CFRelease(defaultRouteReachability);        if (!didRetrieveFlags)     {        printf("Error. Could not recover network reachability flags\n");        return NO;    }        BOOL isReachable = ((flags & kSCNetworkFlagsReachable) != 0);    BOOL needsConnection = ((flags & kSCNetworkFlagsConnectionRequired) != 0);    return (isReachable && !needsConnection) ? YES : NO;}// Direct from Apple. Thank you Apple+ (BOOL)addressFromString:(NSString *)IPAddress address:(struct sockaddr_in *)address{    if (!IPAddress || ![IPAddress length]) return NO;    memset((char *) address, sizeof(struct sockaddr_in), 0);    address->sin_family = AF_INET;    address->sin_len = sizeof(struct sockaddr_in);    int conversionResult = inet_aton([IPAddress UTF8String], &address->sin_addr);    if (conversionResult == 0) {NSAssert1(conversionResult != 1, @"Failed to convert the IP address string into a sockaddr_in: %@", IPAddress);        return NO;    }    return YES;}+ (NSString *) getIPAddressForHost: (NSString *) theHost{    theHost=[theHost substringFromIndex:7];    //NSLog(@"%@",theHost);struct hostent *host = gethostbyname([theHost UTF8String]);    if (!host) {herror("resolv"); return NULL; }struct in_addr **list = (struct in_addr **)host->h_addr_list;NSString *addressString = [NSString stringWithCString:inet_ntoa(*list[0]) encoding:NSUTF8StringEncoding];return addressString;}+ (BOOL) hostAvailable: (NSString *) theHost{    NSString *addressString = [self getIPAddressForHost:theHost];    if (!addressString)    {        printf("Error recovering IP address from host name\n");        return NO;    }    struct sockaddr_in address;    BOOL gotAddress = [self addressFromString:addressString address:&address];    if (!gotAddress)    {printf("Error recovering sockaddr address from %s\n", [addressString UTF8String]);        return NO;    }SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&address);    SCNetworkReachabilityFlags flags;BOOL didRetrieveFlags =SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);    CFRelease(defaultRouteReachability);    if (!didRetrieveFlags)    {        printf("Error. Could not recover network reachability flags\n");        return NO;    }    BOOL isReachable = flags & kSCNetworkFlagsReachable;    return isReachable ? YES : NO;;}//通過區分字串+(BOOL)validateEmail:(NSString*)email{    if((0 != [email rangeOfString:@"@"].length) &&       (0 != [email rangeOfString:@"."].length))    {        NSCharacterSet* tmpInvalidCharSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];        NSMutableCharacterSet* tmpInvalidMutableCharSet = [[tmpInvalidCharSet mutableCopy] autorelease];        [tmpInvalidMutableCharSet removeCharactersInString:@"_-"];                        NSRange range1 = [email rangeOfString:@"@"                                      options:NSCaseInsensitiveSearch];                //取得使用者名稱部分        NSString* userNameString = [email substringToIndex:range1.location];        NSArray* userNameArray   = [userNameString componentsSeparatedByString:@"."];                for(NSString* string in userNameArray)        {            NSRange rangeOfInavlidChars = [string rangeOfCharacterFromSet: tmpInvalidMutableCharSet];            if(rangeOfInavlidChars.length != 0 || [string isEqualToString:@""])                return NO;        }                //取得網域名稱部分        NSString *domainString = [email substringFromIndex:range1.location+1];        NSArray *domainArray   = [domainString componentsSeparatedByString:@"."];                for(NSString *string in domainArray)        {            NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet:tmpInvalidMutableCharSet];            if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""])                return NO;        }                return YES;    }    else {        return NO;    }}//利用Regex驗證+(BOOL)isValidateEmail:(NSString *)email {    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";     NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];     return [emailTest evaluateWithObject:email];}+(BOOL)isValidateString:(NSString *)myString{    NSCharacterSet *nameCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] invertedSet];    NSRange userNameRange = [myString rangeOfCharacterFromSet:nameCharacters];    if (userNameRange.location != NSNotFound) {        //NSLog(@"包含特殊字元");        return FALSE;    }else{        return TRUE;    }}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.