ios 常用工具類

來源:互聯網
上載者:User

[java]#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;      }    }   #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];www.2cto.com    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.