iOS开发之常用分类 发表于 2017-09-30 | 分类于 iOS开发 | 阅读 字数 612 本文介绍了常用的一些分类. 一.UIColor分类(十六进制转颜色)123456789101112131415161718/** 十六进制转颜色 @param hexStr 十六进制字符串 @return 颜色对象 */+ (instancetype)colorWithHexStr:(NSString *)hexStr{ if ([hexStr hasPrefix:@"#"]) { hexStr = [hexStr stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:@""]; } NSInteger redColorNum = strtoul([[hexStr substringWithRange:NSMakeRange(0, 2)] UTF8String],0,16); NSInteger greenColorNum = strtoul([[hexStr substringWithRange:NSMakeRange(2, 2)] UTF8String],0,16); NSInteger blueColorNum = strtoul([[hexStr substringWithRange:NSMakeRange(4, 2)] UTF8String],0,16); UIColor *color = BYColor(redColorNum, greenColorNum, blueColorNum); return color;} 二.UITextField分类(手机账号和密码验证)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485- (BOOL)isEmptyText{ return self.text.length == 0;}/* 中国移动: 135、136、137、138、139、147(数据卡)、148、150、151、152、157、158、159、178、182、183、184、187、188、198、 134(0-8)、1440、1703、1705、1706 中国联通: 130、131、132、145(数据卡)、146、155、156、166、175、176、185、186、 1707、1708、1709 、 中国电信: 133、149、153、173、177、180、181、189、199、 1349、1410、1700、1701、1702、 虛拟运营商: 1700、1705、1707、1708、1709......代理联通移动电信业务 */// 判断手机号码格式是否正确- (BOOL)isValidPhoneNumber{ // phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@" " withString:@""]; if (self.text.length != 11) { return NO; } else { /** * 移动号段正则表达式 * CM China Mobile */ NSString *CMPhoneSegmentRegExp = @"^1((3[5-9])|(4[7-8])|(5[0-2,7-9])|(78)|(8[2-4,7-8])|(98))\\d{8}|((34[0-8])|(440)|(70[3,5-6]))\\d{7}$"; /** * 联通号段正则表达式 * CU China Unicom */ NSString *CUPhoneSegmentRegExp = @"^1((13[0-2])|(4[5-6])|(5[5-6])|(66])|(7[5-6])|(8[5,6]))\\d{8}|(70[7-9])\\d{7}$"; /** * 电信号段正则表达式 * CT China Telecom */ NSString *CTPhoneSegmentRegExp = @"^1((33)|(49)|(53)|(17[3-7])|(18[0,1,9])|(99))\\d{8}((349)|(410)|(70[0-2]))\\d{7}$"; NSPredicate *predicateCM = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CMPhoneSegmentRegExp]; BOOL isMatchCM = [predicateCM evaluateWithObject:self.text]; NSPredicate *predicateCU = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CUPhoneSegmentRegExp]; BOOL isMatchCU = [predicateCU evaluateWithObject:self.text]; NSPredicate *predicateCT = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CTPhoneSegmentRegExp]; BOOL isMatchCT = [predicateCT evaluateWithObject:self.text]; if (isMatchCM || isMatchCU || isMatchCT) { return YES; } else { return NO; } }}// 判断秘密格式为 6 - 18 位数字和字母组成- (BOOL)isValidPassword{ NSString *regExp = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regExp]; if ([predicate evaluateWithObject:self.text]) { return YES ; } else { return NO; }}// 长度是否超过6位数并小于18位数- (BOOL)isMoreThanSixLength{ return (self.text.length >= 6 && self.text.length <= 18);} 三.NSString分类(缓存路径)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647// 获取Documents目录+ (NSString *)documentPath{ return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];}// 获取Cache目录+ (NSString *)cachePath{ return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];}// 获取Tmp目录 + (NSString *)tempPath{ return NSTemporaryDirectory();}// 获取拼接后的Documents目录- (NSString *)appendDocumentsPath{ NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *fileName = [self lastPathComponent]; NSString *filePath = [documentsPath stringByAppendingPathComponent:fileName]; return filePath;}// 获取拼接后的Cache目录- (NSString *)appendCachePath{ NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; NSString *fileName = [self lastPathComponent]; NSString *filePath = [cachePath stringByAppendingPathComponent:fileName]; return filePath;}// 获取拼接后的Tmp目录- (NSString *)appendTmpPath{ NSString *tmpPath = NSTemporaryDirectory(); NSString *fileName = [self lastPathComponent]; NSString *filePath = [tmpPath stringByAppendingPathComponent:fileName]; return filePath;} 后续再更…