第一部分: 分類html
1. NSDate + AYExtensiongit
/** * 判斷是不是今年 * * @param target 表明須要與當前時間進行對比的nsdate對象 */ + (BOOL)isThisYearWithTarget:(NSDate *)target; /** * 判斷是否今天 * * @param target 表明須要與當前時間進行對比的nsdate對象 * * @return */ + (BOOL)isTodayWithTarget:(NSDate *)target; /** * 判斷是不是昨天 * * @param target <#target description#> * * @return <#return value description#> */ + (BOOL)isYesterdayWithTarget:(NSDate *)target; /** * 判斷是不是前天 * * @param target <#target description#> * * @return <#return value description#> */ + (BOOL)isTheDayBeforeYesterdayWithTarget:(NSDate *)target; /** * 獲取今天周幾 * * @return <#return value description#> */ - (NSInteger)getNowWeekday;
2. UIView + AYExtension正則表達式
/** * 快速根據xib建立View */ + (instancetype)ay_viewFromXib; // 分類不能添加成員屬性 // @property若是在分類裏面,只會自動生成get,set方法的聲明,不會生成成員屬性,和方法的實現 @property (nonatomic, assign) CGFloat ay_x; @property (nonatomic, assign) CGFloat ay_y; @property (nonatomic, assign) CGFloat ay_width; @property (nonatomic, assign) CGFloat ay_height; @property (nonatomic, assign) CGSize ay_size; //中心點的x與y @property (nonatomic, assign) CGFloat ay_centerX; @property (nonatomic, assign) CGFloat ay_centerY;
3. NSObject + AYExtension緩存
/** * 字典或對象轉成JSON字符串數據 */ @property (nonatomic, copy, readonly) NSString *JSONString;
4. UIImage + AYExtension工具
- (instancetype)ay_circleImage; // 生成一個圓形圖片 + (instancetype)ay_circleImageNamed:(NSString *)name; // 給定一個不要渲染的圖片名稱,生成一個最原始的圖片 + (UIImage *)imageWithOriginalImageName:(NSString *)imageName; // 模糊效果(渲染很耗時間,建議在子線程中渲染) - (UIImage *)blurImage; - (UIImage *)blurImageWithMask:(UIImage *)maskImage; - (UIImage *)blurImageWithRadius:(CGFloat)radius; - (UIImage *)blurImageAtFrame:(CGRect)frame; // 灰度效果 - (UIImage *)grayScale; // 固定寬度與固定高度 - (UIImage *)scaleWithFixedWidth:(CGFloat)width; - (UIImage *)scaleWithFixedHeight:(CGFloat)height; // 平均的顏色 - (UIColor *)averageColor; // 裁剪圖片的一部分 - (UIImage *)croppedImageAtFrame:(CGRect)frame; // 將自身填充到指定的size - (UIImage *)fillClipSize:(CGSize)size;
5. UITextField + AYExtension字體
/** 佔位文字顏色 */ @property (nonatomic, strong) UIColor *ay_placeholderColor;
6. NSString + AYExtensionatom
/** * md5加密 */ + (NSString*)md5HexDigest:(NSString*)input; /** * 根據文件名計算出文件大小 */ - (unsigned long long)ay_fileSize; /** * 生成緩存目錄全路徑 */ - (instancetype)cacheDir; /** * 生成文檔目錄全路徑 */ - (instancetype)docDir; /** * 生成臨時目錄全路徑 */ - (instancetype)tmpDir; /** * @brief 根據字數的不一樣,返回UILabel中的text文字須要佔用多少Size * @param size 約束的尺寸 * @param font 文本字體 * @return 文本的實際尺寸 */ - (CGSize)textSizeWithContentSize:(CGSize)size font:(UIFont *)font; /** * @brief 根據文本字數/文本寬度約束/文本字體 求得text的Size * @param width 寬度約束 * @param font 文本字體 * @return 文本的實際高度 */ - (CGFloat)textHeightWithContentWidth:(CGFloat)width font:(UIFont *)font; /** * @brief 根據文本字數/文本寬度約束/文本字體 求得text的Size * @param height 寬度約束 * @param font 文本字體 * @return 文本的實際長度 */ - (CGFloat)textWidthWithContentHeight:(CGFloat)height font:(UIFont *)font;
第二部分: 工具類加密
1. AYFileManager (存儲/讀取本地數據的快捷實現)url
/** 把對象歸檔存到沙盒裏 */ +(void)saveObject:(id)object byFileName:(NSString*)fileName; /** 經過文件名從沙盒中找到歸檔的對象 */ +(id)getObjectByFileName:(NSString*)fileName; /** 根據文件名刪除沙盒中的 plist 文件 */ +(void)removeFileByFileName:(NSString*)fileName; /** 存儲用戶偏好設置 到 NSUserDefults */ +(void)saveUserDefaultData:(id)data forKey:(NSString*)key; /** 讀取用戶偏好設置 */ +(id)readUserDefaultDataForKey:(NSString*)key; /** 刪除用戶偏好設置 */ +(void)removeUserDataForkey:(NSString*)key;
2. RegularUtils (包含項目經常使用正則表達式)spa
+ (NSString *)htmlShuangyinhao:(NSString *)values; + (UIColor *) colorWithHexString: (NSString *) stringToConvert; + (NSString *) nullDefultString: (NSString *)fromString null:(NSString *)nullStr; #pragma 正則匹配郵箱號 + (BOOL)checkMailInput:(NSString *)mail; #pragma 正則匹配手機號 + (BOOL)checkTelNumber:(NSString *) telNumber; #pragma 正則匹配用戶密碼6-18位數字和字母組合 + (BOOL)checkPassword:(NSString *) password; #pragma 正則匹配用戶姓名,20位的中文或英文 + (BOOL)checkUserName : (NSString *) userName; #pragma 正則匹配用戶身份證號 + (BOOL)checkUserIdCard: (NSString *) idCard; #pragma 正則匹員工號,12位的數字 + (BOOL)checkEmployeeNumber : (NSString *) number; #pragma 正則匹配URL + (BOOL)checkURL : (NSString *) url; #pragma 正則匹配暱稱 + (BOOL) checkNickname:(NSString *) nickname; #pragma 正則匹配以C開頭的18位字符 + (BOOL) checkCtooNumberTo18:(NSString *) nickNumber; #pragma 正則匹配以C開頭字符 + (BOOL) checkCtooNumber:(NSString *) nickNumber; #pragma 正則匹配銀行卡號是否正確 + (BOOL) checkBankNumber:(NSString *) bankNumber; #pragma 正則匹配17位車架號 + (BOOL) checkCheJiaNumber:(NSString *) CheJiaNumber; #pragma 正則只能輸入數字和字母 + (BOOL) checkTeshuZifuNumber:(NSString *) CheJiaNumber; #pragma 車牌號驗證 + (BOOL) checkCarNumber:(NSString *) CarNumber;
3. Single (快速實現一個單例)
// // Single.h // CreateTools // // Created by AY on 16/6/27. // Copyright © 2016年 Jasperay. All rights reserved. // #ifndef Single_h #define Single_h #ifdef __OBJC__ #pragma mark - 單例模式 .h文件內容 #define SingleInterface(name) +(instancetype)share##name; #pragma mark - 單例模式 .m文件內容 #if __has_feature(objc_arc) #define SingleImplementation(name) +(instancetype)share##name {return [[self alloc]init];} \ + (instancetype)allocWithZone:(struct _NSZone *)zone { \ static id instance; \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ instance = [super allocWithZone:zone]; \ }); \ return instance; \ } \ - (id)copyWithZone:(NSZone *)zone{return self;} \ - (id)mutableCopyWithZone:(NSZone *)zone {return self;} #else #define SingleImplementation(name) +(instancetype)share##name {return [[self alloc]init];} \ + (instancetype)allocWithZone:(struct _NSZone *)zone { \ static id instance; \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ instance = [super allocWithZone:zone]; \ }); \ return instance; \ } \ - (id)copyWithZone:(NSZone *)zone{return self;} \ - (id)mutableCopyWithZone:(NSZone *)zone {return self;} \ - (instancetype)retain {return self;} \ - (instancetype)autorelease {return self;} \ - (oneway void)release {} \ - (NSUInteger)retainCount {return MAXFLOAT;} \ #endif #endif #endif /* Single_h */
附上地址: http://git.oschina.net/aLonelyRoot3/AYExtension