iOS开发笔记——常用代码块

1.获取当前时间

/**
 获取当前时间(格式为:YYYY-MM-dd HH:mm:ss)

 @return 返回获取到当前的时间字符串
 */
+ (NSString *)getCurrentDateString
{
    NSDate *currentDate = [NSDate date];//获取当前时间,日期
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormatter stringFromDate:currentDate];
    return dateString;
}

2.把时间字符串转换为NSDate类型

/**
 把字符串转化为NSDate类型

 @param string 待转换的字符串
 @return 转化后的Date
 */
+ (NSDate *)changeStringToDate:(NSString *)string
{
    NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,要注意跟下面的dateString匹配,否则日起将无效
    return [dateFormat dateFromString:string];
}


3.判断当前时间是否在指定时间段内

/**
 判断当前时间是否在指定时间内
 
 @param startDate 开始时间
 @param endDateString 结束时间
 @return 是否在时间段内
 */
+ (BOOL)isMatchCurrentDateWithStartDate:(NSString *)startDate endDate:(NSString *)endDateString
{
    NSDate *currentDate = [self changeStringToDate:[NSDate getCurrentDateString]];
    
    NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,要注意跟下面的dateString匹配,否则日起将无效
    
    if ([currentDate compare:[dateFormat dateFromString:startDate]] ==NSOrderedAscending)
        return NO;
    
    
    if ([currentDate compare:[dateFormat dateFromString:endDateString]] ==NSOrderedDescending)
        return NO;
    
    return YES;
}

4.判断一个时间是否在指定时间之后

/**
 判断时间是否在另一个时间之后

 @param firstDate 需要判断时间
 @param secondDate 参考时间
 @return 判断结果
 */
+ (BOOL)checkDate:(NSString *)firstDate isBeforDate:(NSString *)secondDate
{
    
    NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,要注意跟下面的dateString匹配,否则日起将无效
    
    if ([[dateFormat dateFromString:firstDate] compare:[dateFormat dateFromString:secondDate]] == NSOrderedAscending) {
        return YES;
    }
    return NO;
}

5.十进制转十六进制

/**
 将十进制转化为十六进制
 
 @param ascii 10进制  int类型
 @return 16进制
 */
+ (NSString*)changASCIIToHEX:(NSInteger)ascii
{
    NSString* intAscii = [[NSString alloc] initWithFormat:@"%1lx", (long)ascii];
    NSString* hex = [NSString stringWithFormat:@"%@", intAscii];

    if (hex.length == 5) {
        return [NSString stringWithFormat:@"0%@",hex];
    }
    else {
        return hex;
    }

6.十六进制转十进制

/**
 将十六进制转化为十进制
 
 @param str 16进制 nsstring类型
 @return 10进制
 */
+ (NSInteger)changHEXToASCII:(NSString*)str
{
    NSString* temp10 = [NSString stringWithFormat:@"%lu", strtoul([str UTF8String], 0, 16)];
    int cycleNumber = [temp10 intValue];

    return cycleNumber;
}

7.判断字符串是否只包含数字、大小写字母、汉字

/**
 判断字符串是否有非法字符(只包含数字、大小写字母、汉字)
 
 @param string 待校验的字符串
 @return 校验结果
 */
+ (BOOL)isMatchCommonString:(NSString*)string
{
    NSString* str = @"^[A-Za-z0-9\\u4e00-\u9fa5]+$";
    NSPredicate* emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", str];
    if ([emailTest evaluateWithObject:string]) {
        return YES;
    }
    return NO;
}

8.验证字符串是否是指定长度的纯数字字符串

/**
 验证字符串是否是指定长度的纯数字字符串
 
 @param string 需要匹配的字符串
 @param count 数字长度
 @return 匹配结果
 */
+ (BOOL)isMatchNumberString:(NSString*)string andCount:(NSInteger)count
{
    NSString* regex = [NSString stringWithFormat:@"^[0-9]{%ld}$", (long)count];
    NSPredicate* pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    return [pred evaluateWithObject:string];
}

9.获取手机型号(iPhone 7 Plus、iPad Pro等)

/**
 获取手机型号iPhone 5S、iPad 2等
 
 @return 手机型号
 */
+ (NSString*)getPhoneVersion
{
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString* platform = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];
    if ([platform isEqualToString:@"iPhone1,1"])
        return @"iPhone 2G";
    if ([platform isEqualToString:@"iPhone1,2"])
        return @"iPhone 3G";
    if ([platform isEqualToString:@"iPhone2,1"])
        return @"iPhone 3GS";
    if ([platform isEqualToString:@"iPhone3,1"])
        return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,2"])
        return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,3"])
        return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone4,1"])
        return @"iPhone 4S";
    if ([platform isEqualToString:@"iPhone5,1"])
        return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,2"])
        return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,3"])
        return @"iPhone 5c";
    if ([platform isEqualToString:@"iPhone5,4"])
        return @"iPhone 5c";
    if ([platform isEqualToString:@"iPhone6,1"])
        return @"iPhone 5s";
    if ([platform isEqualToString:@"iPhone6,2"])
        return @"iPhone 5s";
    if ([platform isEqualToString:@"iPhone7,1"])
        return @"iPhone 6 Plus";
    if ([platform isEqualToString:@"iPhone7,2"])
        return @"iPhone 6";
    if ([platform isEqualToString:@"iPhone8,1"])
        return @"iPhone 6s";
    if ([platform isEqualToString:@"iPhone8,2"])
        return @"iPhone 6s Plus";
    if ([platform isEqualToString:@"iPhone8,4"])
        return @"iPhone SE";
    if ([platform isEqualToString:@"iPhone9,1"])
        return @"iPhone 7";
    if ([platform isEqualToString:@"iPhone9,2"])
        return @"iPhone 7 Plus";
    if ([platform isEqualToString:@"iPod1,1"])
        return @"iPod Touch 1G";
    if ([platform isEqualToString:@"iPod2,1"])
        return @"iPod Touch 2G";
    if ([platform isEqualToString:@"iPod3,1"])
        return @"iPod Touch 3G";
    if ([platform isEqualToString:@"iPod4,1"])
        return @"iPod Touch 4G";
    if ([platform isEqualToString:@"iPod5,1"])
        return @"iPod Touch 5G";
    if ([platform isEqualToString:@"iPad1,1"])
        return @"iPad 1G";
    if ([platform isEqualToString:@"iPad2,1"])
        return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,2"])
        return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,3"])
        return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,4"])
        return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,5"])
        return @"iPad Mini 1G";
    if ([platform isEqualToString:@"iPad2,6"])
        return @"iPad Mini 1G";
    if ([platform isEqualToString:@"iPad2,7"])
        return @"iPad Mini 1G";
    if ([platform isEqualToString:@"iPad3,1"])
        return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,2"])
        return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,3"])
        return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,4"])
        return @"iPad 4";
    if ([platform isEqualToString:@"iPad3,5"])
        return @"iPad 4";
    if ([platform isEqualToString:@"iPad3,6"])
        return @"iPad 4";
    if ([platform isEqualToString:@"iPad4,1"])
        return @"iPad Air";
    if ([platform isEqualToString:@"iPad4,2"])
        return @"iPad Air";
    if ([platform isEqualToString:@"iPad4,3"])
        return @"iPad Air";
    if ([platform isEqualToString:@"iPad4,4"])
        return @"iPad Mini 2G";
    if ([platform isEqualToString:@"iPad4,5"])
        return @"iPad Mini 2G";
    if ([platform isEqualToString:@"iPad4,6"])
        return @"iPad Mini 2G";
    if ([platform isEqualToString:@"i386"])
        return @"iPhone Simulator";
    if ([platform isEqualToString:@"x86_64"])
        return @"iPhone Simulator";
    return platform;
}

10.根据颜色生成图片

/**
 根据颜色生成图片
 
 @param color 颜色
 
 @return 生成的图片
 */
+ (UIImage*)creatImageWithColor:(UIColor*)color
{
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}






你可能感兴趣的:(开发笔记)